【发布时间】:2021-11-21 14:39:05
【问题描述】:
当我运行下面的代码时,我收到以下错误:
ReferenceError: Cannot access 'bar' before initialization.
有人可以帮我理解为什么会这样吗?据我所知,foo 函数应该等到 promise 解决(因为我使用的是 await,然后再转到 console.log(bar) 行。我在这里错过了什么?
function qux() {
return Math.random();
}
async function bar() {
let result = await qux();
return result > 0.5;
}
async function foo() {
let bar = await bar();
console.log(bar);
}
foo();
【问题讨论】:
-
你为什么要等qux?它不返回承诺。
-
当你只有同步代码时,这里使用
async和await是不协调的。
标签: javascript asynchronous async-await es6-promise