-2

考虑代码:

const getUsers = async () => {
    // get users from DB
    // and return 
}

有没有区别

const someOtherFunction = () => { 

    // do some stuff...
    const users = await getUsers();
    return users;   

}
  

const someOtherFunction = async () => { 

    // do some stuff...
    return await getUsers();
}
4

1 回答 1

0

好吧,eslint 有一个无返回等待规则,其中描述了原因:

在异步函数中使用 return await 将当前函数保留在调用堆栈中,直到正在等待的 Promise 已解决,代价是在解决外部 Promise 之前执行额外的微任务。return await 也可以在 try/catch 语句中使用,以从另一个返回 Promise 的函数中捕获错误。

您可以通过不等待返回值来避免额外的微任务,如果与返回的 Promise 异步抛出错误,则函数的权衡不再是堆栈跟踪的一部分。这会使调试更加困难。

于 2021-06-08T13:57:15.033 回答