J'aimerai comprendre comment transformer le résultat de compute en une valeur car avec ce code ça me retourne : [object Promise] comme si rien ne s'était passé.
Mon data? il faut que je lui indique la valeur à récupérer, soit le return de compute non?
Mais du coup quelle est sa valeur du return de compute? Car value1 et value2 sont déclarées dans la fonction et donc non utilisable à l'extérieur
EDIT : Hahahaha !!!
Ok! j'y ai passé des heures hier... Merci Le data donc dans la fonction asynchrone c'est le résultat de la fonction précédemment utilisé !! et donc la valeur que je cherchais... Bingo merci
EDIT 2 : Mais du coup il se passe quoi dans le code?
Je déclare ma fonction async (compute) qui s'exécute après les 2 autres (getNumber). Elle renvoie une valeur.
Ensuite je dis à cette fonction une fois qu'elle est réalisée et que ça c'est bien passé (qu'on a une valeur retour), je l'utilise.
Heureusement que je suis tombé sur ce topic car je suis complètement perdu dans ce cours.
Et je le trouve largement insuffisant pour toutes les notions qu'il doit transmettre.
async function getNumber1() {
return 10;
}
async function getNumber2() {
return 4;
}
// 1 :
async function compute() {
console.log("compute:");
num1 = await getNumber1();
num2 = await getNumber2();
console.log("num1 : " + num1);
console.log("num2 : " + num2);
res = num1 + num2;
console.log("resultat : " + res);
return res;
}
// 2 :
const dom_element_result = document.getElementById('result');
compute()
.then(function(data) { //result ok => data have the elements returned by compute()
dom_element_result.textContent = data;
})
.then(function(err) { //Error
console.log("Erreur valuating result form function compute() " + err);
});
Je n'ai d'ailleurs pas compris entièrement le mécanisme.
Si quelqu'un peut m'expliquer pourquoi dans la log de ma console j'obtiens le message d'erreur j'apprécierai beaucoup.
compute:
num1 : 10
num2 : 4
resultat : 14
Erreur valuating result form function compute()undefined
- Edité par ThereseGoguet1 10 novembre 2020 à 14:40:55
Bonjour,
Votre dernière ligne dans la console n'est pas une erreur. Je pense qu'elle apparait car vous réutilisez then une deuxième fois pour surveiller l'apparition d'une erreur, au lieu de catch. Le dernier console.log() est alors lu, et indique une erreur inexistante : undefined.
C'est en sciant que Léonard de Vinci.