Usando aguardar fora de uma função assíncrona
Eu estava tentando encadear duas funções assíncronas juntas, porque a primeira tinha um parâmetro de retorno condicional que fazia com que a segunda fosse executada ou saísse do módulo. No entanto, encontrei um comportamento estranho que não consigo encontrar nas especificações.
async function isInLobby() {
//promise.all([chained methods here])
let exit = false;
if (someCondition) exit = true;
}
Este é um trecho bastardo do meu código (você pode ver o escopo completoaqui), que simplesmente verifica se um jogador já está em um lobby, mas isso é irrelevante.
Em seguida, temos esta função assíncrona.
async function countPlayer() {
const keyLength = await scardAsync(game);
return keyLength;
}
Esta função não precisa ser executada seexit === true
.
Eu tentei fazer
const inLobby = await isInLobby();
Eu esperava que isso esperasse resultados, para que eu pudesse usarinLobby
executar condicionalmentecountPlayer
, no entanto, recebi um erro de digitação sem detalhes específicos.
Por que você não podeawait
aasync
função fora do escopo da função? Eu sei que é uma promessa de açúcar, por isso deve estar acorrentada athen
mas porque é que emcountPlayer
Posso esperar outra promessa, mas lá fora, não possoawait
isInLobby
?