Je ne peux pas comprendre comment async et attendre fonctionne. Considérez le code ci-dessous:
password
username
3 Réponses :
Vous pouvez penser à p > attendre code> comme "Désavouer" A prometteur code> . Pour le moment, votre code n'utilise pas un prometteur code> et donc attendre code> ne fonctionnera pas. Au lieu de cela, vous pouvez envelopper votre Settimeout code> dans une promesse et résoudre code> votre promesse une fois qu'il est complet. Ensuite, en utilisant attendre code>, vous pouvez obtenir la valeur résolue à partir du code> code> (une fois qu'elle a été résolue (donc 100m / s)) et de le connecter à la console. async code> Les fonctions renvoient également toujours une promesse code> code>. Ainsi, vous pouvez utiliser la méthode .Chen code> sur l'appel de votre fonction pour déclencher un "rappel" une fois que votre fonction getansername code> est terminée: p> const getUsername = async _ => await new Promise(resolve => setTimeout(_ => resolve("username"), 100));
const getUsernameAndPassword = async _ => {
const username = await getUsername();
console.log(username);
console.log("password");
}
getUsernameAndPassword();
Tout d'abord, vous ne pouvez pas simplement attendre la sécurité car il ne renvoie pas la promesse, vous pouvez essayer de transformer le contenu de cette fonction en un si vous souhaitez attendre que c'est l'exécution
getUsername().then(()=>console.log("password"));
La déclaration de fonction ASYNC définit une fonction asynchrone, qui renvoie un objet asynchronisé.
Une fonction asynchrone est une fonction qui fonctionne de manière asynchrone via la boucle d'événement, P>
en utilisant une promesse implicite de renvoyer son résultat. Mais la syntaxe et la structure de votre code p>
à l'aide des fonctions ASYNC sont beaucoup plus comme à l'aide de fonctions synchrones standard. P> Référence2 Strong>:
https://medium.com/siliconwat/how-javascript-Async- Await-Works-3CAB4B7D21DA P> P>
"Exécutez ce programme de manière synchrone" i> - alors n'utilisez pas
settimeout code> o.oasync code> etattendre code> est le sucre syntaxique pour effectuer le travail avecprometteur code> s Votre script n'utilise pas de promesses, il n'y a donc pas de moyenasync code> /attendre code> changerait quoi que ce soit pour vous.