异步/等待:初始化前无法访问变量(javascript)

Async / Await: Cannot access variable before initialization (javscript)

当我 运行 下面的代码时,我得到以下错误:

ReferenceError: Cannot access 'bar' before initialization.

有人可以帮我理解为什么会这样吗?据我所知,foo 函数应该等到承诺解决(因为我在使用 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();

问题出在函数foo()

bar 已经是一个函数,您试图在调用它时分配给它,这可能不是您想要做的。

更改其中之一的名称。

function qux() {
  return Math.random();
}

async function bar() {
  let result = await qux();
  return result > 0.5;
}

async function foo() {
  let x = await bar();
  console.log(x);
}

foo();