Javascript 如果我定义了一个异步函数并在函数体中使用await,那么调用该函数时是否需要使用await?

Javascript 如果我定义了一个异步函数并在函数体中使用await,那么调用该函数时是否需要使用await?,javascript,async-await,Javascript,Async Await,例如: async doSomething() { await asyncCall(); } 调用doSomething函数时是否需要使用wait await doSomething(); 还是这样好 doSomething(); 理解async/await实际上只是承诺之上的“糖”,这一点很重要。换句话说,doSomething仍然返回一个Promise(您不能使用async wait来逃避这个事实!)。因此,要回答您的问题,您仍然需要使用wait(或链接然后调用)来处理最终解决或拒

例如:

async doSomething() {
  await asyncCall();
}
调用
doSomething
函数时是否需要使用
wait

await doSomething();
还是这样好

doSomething();

理解async/await实际上只是承诺之上的“糖”,这一点很重要。换句话说,
doSomething
仍然返回一个
Promise
(您不能使用async wait来逃避这个事实!)。因此,要回答您的问题,您仍然需要使用
wait
(或链接
然后
调用)来处理最终解决或拒绝的承诺值。

在您的示例中,
doSomething()
返回承诺。要从异步函数返回数据,需要解析或拒绝承诺

当您这样做时:

await doSomething();
doSomething();
doSomething()
将等待解析
asyncCall()

当您这样做时:

await doSomething();
doSomething();
doSomething()
将在后台解析
asyncCall()

我认为您的困惑来自这样一个事实:wait仅在javascript的异步函数中有效。如果要在异步函数外部运行
wait doSomething()
,只需将其环绕在匿名异步函数周围,如:

(async() => {
  await doSomething()
})();

是否要等待
doSomething()
完成?你想处理它可能抛出的任何错误吗?@VLAZ是的,我想等待
doSomething()
完成,然后你需要
wait
。如果你想在后台运行它而不是等待,你就不要使用
wait
。然后…你必须
wait
它。这就是
await
所做的,不管您是否在体内使用
await
,是的,您需要
await
(或
返回
)这一承诺。