Javascript 应用';时函数是否应保持异步;等待不归';?

Javascript 应用';时函数是否应保持异步;等待不归';?,javascript,node.js,asynchronous,promise,async-await,Javascript,Node.js,Asynchronous,Promise,Async Await,如果不需要使用返回等待,该函数是否保持异步 在异步函数中使用return wait可以保持当前函数 在调用堆栈中,直到等待的承诺完成为止 已解决,但在解决外部问题之前需要额外的微任务 允诺 例1 async function foo() { return await bar(); } 例2 async function foo() { return bar(); } 例3 function foo() { return bar(); } 酒吧 如果第一个示例变成了第

如果不需要使用
返回等待
,该函数是否保持
异步

在异步函数中使用return wait可以保持当前函数 在调用堆栈中,直到等待的承诺完成为止 已解决,但在解决外部问题之前需要额外的微任务 允诺

例1

async function foo() {
   return await bar();
}
例2

async function foo() {
    return bar();
}
例3

function foo() {
    return bar();
}
酒吧


如果第一个示例变成了第二个示例,那么它不应该变成第三个示例吗?

我认为示例3与示例2不同。Async确保函数返回承诺,并将非承诺封装在其中。请参阅。

是的,如果函数不返回wait,则使用async没有任何意义。

在这种情况下,将一个承诺包装到另一个承诺中有什么好处吗?当然,这毫无意义?我认为这是毫无意义的,除非你回报一个承诺。在另一个承诺中,一个承诺在哪里?我不知道,但我认为这是一个来自NewProgrammer的小问题。不是这样。AsyncFunction的最大优点是总是返回承诺,即使是在同步抛出的情况下,调用方也会将其视为异步抛出(即拒绝的承诺)。
async function bar() {
    const data = await externalCall();
    const result = anotherFunction(data);
    return result;
}