Maison >interface Web >js tutoriel >Pourquoi les fonctions asynchrones renvoient-elles des promesses en attente au lieu de valeurs immédiates ?
Pourquoi une fonction asynchrone renvoie-t-elle Promise avec un statut en attente au lieu d'une valeur ?
Le code définit une fonction asynchrone, AuthUser, qui invoque google.login() et renvoie la promesse qu'il donne. Lorsque la fonction est invoquée, la promesse est enregistrée avec le statut en attente car son résultat n'a pas encore été résolu.
Solution :
Pour accéder à la valeur résolue de la promesse, il doit être chaîné avec .then() même s'il est toujours en attente. Par exemple :
AuthUser(data) .then((token) => { console.log(token); // "Some User token" });
Détails :
Les promesses sont des opérations à sens unique. Une fois résolues, leur valeur est transmise à la méthode .then() ou .catch() quel que soit leur état (résolu ou en attente). La valeur de retour de .then() est la valeur résolue de la promesse.
Dans le code fourni, AuthUser renvoie directement la promesse, rendant sa valeur résolue indisponible jusqu'à ce que .then() soit invoqué.
Informations supplémentaires :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!