Я пытался связать две асинхронные функции вместе, потому что первый имел параметр условного возврата, который заставлял второй либо запускаться, либо выходить из модуля. Тем не менее, я нашел странное поведение, которое я не могу найти в спецификациях.
async function isInLobby() {
//promise.all([chained methods here])
let exit = false;
if (someCondition) exit = true;
}
Это укороченный фрагмент моего кода (вы можете увидеть полный объем здесь), который просто проверяет, если игрок, если он уже находится в лобби, но это не имеет значения.
Затем мы получаем эту асинхронную функцию.
async function countPlayer() {
const keyLength = await scardAsync(game);
return keyLength;
}
Эта функция не требуется запускать, если exit === true
.
Я пытался сделать
const inLobby = await isInLobby();
Я надеялся, что ожидаю результатов, поэтому я могу использовать inLobby
для условного запуска countPlayer
, однако я получил typeerror без особых сведений.
Почему вы не можете await
a async
за пределами области действия? Я знаю, что это обещание сахара, поэтому оно должно быть привязано к then
, но почему в countPlayer
я могу ждать другого обещания, но на улице я не могу await
isInLobby
?