fecth asynchrone retourne undefined
Posté : 05 mars 2023, 22:35
hello,
je m'arrache les cheveux avec les promises...
j'ai construit un bout de code qui effectue un simple appel d'une url, l'url appelée me permet de savoir si je suis authentifié (valeur authorized)
Dans myurl.then je récupère bien ma valeur d'authorized mais dès que je veux l'utiliser plus loin dans le code, la valeur est à undefined.... Je pense que je n'ai pas bien compris l'usage des promises mais pourtant il me semble avoir créé un code synchrone...
Comment puis-je utiliser le résultat d'un promise dans la suite du code ?
const myurl = fetch(url, {
method: 'POST',
body: qs.stringify(data),
headers: headers
})
.then((response) => response.text())
.then((body) => {
var json_result = JSON.parse(body);
return json_result.authorized;
});
const printUrl = () => {
myurl.then((a) => {
console.log(a);
// retourne true !!!
cnx = a;
return a;
});
};
var test = printUrl();
console.log('cnx : ' + cnx);
// retourne undefined !!!
je m'arrache les cheveux avec les promises...
j'ai construit un bout de code qui effectue un simple appel d'une url, l'url appelée me permet de savoir si je suis authentifié (valeur authorized)
Dans myurl.then je récupère bien ma valeur d'authorized mais dès que je veux l'utiliser plus loin dans le code, la valeur est à undefined.... Je pense que je n'ai pas bien compris l'usage des promises mais pourtant il me semble avoir créé un code synchrone...
Comment puis-je utiliser le résultat d'un promise dans la suite du code ?
const myurl = fetch(url, {
method: 'POST',
body: qs.stringify(data),
headers: headers
})
.then((response) => response.text())
.then((body) => {
var json_result = JSON.parse(body);
return json_result.authorized;
});
const printUrl = () => {
myurl.then((a) => {
console.log(a);
// retourne true !!!
cnx = a;
return a;
});
};
var test = printUrl();
console.log('cnx : ' + cnx);
// retourne undefined !!!