Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript “与”之间有区别吗;return wait getUsers()&引用;VS";const users=wait getUsers()&&;返回用户&引用;_Javascript_Node.js_Asynchronous_Async Await - Fatal编程技术网

Javascript “与”之间有区别吗;return wait getUsers()&引用;VS";const users=wait getUsers()&&;返回用户&引用;

Javascript “与”之间有区别吗;return wait getUsers()&引用;VS";const users=wait getUsers()&&;返回用户&引用;,javascript,node.js,asynchronous,async-await,Javascript,Node.js,Asynchronous,Async Await,以代码为例: const getUsers = async () => { // get users from DB // and return } 两者之间有区别吗 const someOtherFunction = () => { // do some stuff... const users = await getUsers(); return users; } 及 eslint有一个,其中描述了原因: 在异步函数

以代码为例:

const getUsers = async () => {
    // get users from DB
    // and return 
}
两者之间有区别吗

const someOtherFunction = () => { 

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

}
  

eslint有一个,其中描述了原因:

在异步函数中使用return await将当前函数保留在调用堆栈中,直到正在等待的承诺被解析为止,代价是在解析外部承诺之前执行额外的微任务。return-await还可以在try/catch语句中用于捕获来自另一个返回承诺的函数的错误

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


没有(除非您在分配给
用户
和返回它之间做额外的事情)。较长的代码更难理解,因为有多余的临时变量。
return await
通常没有任何用处,其中
return getUsers()的选项在哪里?和
const someOtherFunction = async () => { 

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