J'ai été de tenter de la chaîne deux async fonctions ensemble, parce que le premier avait un conditionnel paramètre de retour qui a provoqué la deuxième à exécuter, ou de quitter le module. Cependant, j'ai trouvé le comportement étrange je ne trouve pas dans les specs.
async function isInLobby() {
//promise.all([chained methods here])
let exit = false;
if (someCondition) exit = true;
}
C'est une vision dénaturée extrait de mon code (vous pouvez voir l'intégralité du champ d'application ici), qui vérifie simplement si un joueur s'il est déjà dans un hall d'accueil, mais c'est hors de propos.
Ensuite, nous avons cette fonction async.
async function countPlayer() {
const keyLength = await scardAsync(game);
return keyLength;
}
Cette fonction n'a pas besoin de courir si exit === true
.
J'ai essayé de faire
const inLobby = await isInLobby();
Cela, je l'espère, vous attendent pour des résultats, donc je peux l'utiliser inLobby
pour exécuter conditionnellement countPlayer
, cependant, j'ai reçu une erreur typeerror sans plus de détails.
Pourquoi ne pouvez-vous pas await
un async
fonction à l'extérieur de la portée de la fonction? Je sais que c'est un sucre promesse, de sorte qu'il doit être enchaînés en then
mais pourquoi est-ce que, en countPlayer
je peux attendre un autre promesse, mais à l'extérieur, je ne peux pas await
isInLobby
?