une fonction asynche que je traite, renvoie plusieurs valeurs dans le tableau en appelant cette fonction, je constate que c'est pas em> possible pour accéder directement à une personne. Valeurs de retour dans une syntaxe: p> Le seul moyen (connu à moi jusqu'à présent) il fonctionne, est de le casser: P> result = await funcName(arg)
result1 = result[0]
result2 = result[1]
3 Réponses :
const [result1 ,result2]= await funcName(arg)
Déconstruire ...
La syntaxe de l'opérateur code> attendre code> est ce qui signifie que l'expression totale em> sera évaluée avant de remettre à Comme il n'y a pas de propriété de ce type, le résultat de l'expression est L'exécution de code continue avant que l'objet de promesse réel de l'étape Vous pouvez forcer p> attendre code>. Voici une ventilation de ce qui se passe lorsque vous avez
attendre funcname (arg) [0] code> p>
funcname (arg) code> retourne une promesse. p> li>
[0] code> est la notation des supports carrés utilisées sur em> la promesse. Donc, il s'agit de la propriété
0 code> de l'objet de promesse. P> li>
non défini code>. p> li>
attendre code> est appelé sur
non défini code>. Comme ce n'est pas une promesse, il est traité comme si un
promesse.Resolve (indéfini) code> et donc il n'y a rien à attendre pour terminer. P> li>
attendre code> pour examiner la promesse retournée, si vous entourez la partie correcte de l'expression entre parenthèses ou pour l'utiliser uniquement sur l'expression qui retourne une promesse: p>
const simpleAsync = async function () {
return ["one", "two"];
}
async function main() {
const [a, b] = await simpleAsync();
console.log("a:", a);
console.log("b:", b);
}
main();