最佳答案
我试图将两个异步函数链接在一起,因为第一个函数有一个条件返回参数,导致第二个函数要么运行,要么退出模块。然而,我发现了一些奇怪的行为,我在规格中找不到。
async function isInLobby() {
//promise.all([chained methods here])
let exit = false;
if (someCondition) exit = true;
}
This is a bastardized snippet of my code (you can see the full scope 给你), that simply checks if a player if already in a lobby, but that's irrelevant.
接下来我们有这个异步函数。
async function countPlayer() {
const keyLength = await scardAsync(game);
return keyLength;
}
如果 exit === true
。
我尽力了
const inLobby = await isInLobby();
我希望这将等待结果,所以我可以使用 inLobby
有条件地运行 countPlayer
,但是我收到了一个没有具体细节的打字错误。
为什么你不能 await
一个 async
函数的范围之外的功能?我知道这是一个糖的承诺,所以它必须链接到 then
但为什么在 countPlayer
我可以等待另一个承诺,但在外面,我不能 await
isInLobby
?