我试图将两个异步函数链接在一起,因为第一个有一个条件返回参数,导致第二个要么运行,要么退出module。但是,我发现了在规范中找不到的奇怪行为。
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;
}
这个函数不需要运行 if exit === true
。
我试着做
const inLobby = await isInLobby();
我希望这会等待结果,所以我可以inLobby
用来有条件地运行countPlayer
,但是我收到了一个没有具体细节的类型错误。
为什么你不能await
在async
函数范围之外的函数?我知道这是一个甜蜜的Promise,所以它必须被链接起来,then
但为什么countPlayer
我可以等待另一个Promise,但在外面,我不能await
isInLobby
?