Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/36.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
Node.js 异步/等待节点的功能性_Node.js_Async Await - Fatal编程技术网

Node.js 异步/等待节点的功能性

Node.js 异步/等待节点的功能性,node.js,async-await,Node.js,Async Await,我有以下带有async/await的代码片段 当我浏览上述代码片段时,我希望输出为1、2、3、4。但我得到了4,2,3,1。我错过什么了吗 等待测试1等的节点版本v10.13.0与等待设置超时相同。。。直接地setTimeout不是基于承诺的,在承诺链中没有考虑 等待测试1等导致一个滴答声延迟,运行承诺立即解决 为了使代码按预期工作,应: function test1 () { return new Promise(resolve => setTimeout(() => {

我有以下带有async/await的代码片段

当我浏览上述代码片段时,我希望输出为1、2、3、4。但我得到了4,2,3,1。我错过什么了吗

等待测试1等的节点版本v10.13.0与等待设置超时相同。。。直接地setTimeout不是基于承诺的,在承诺链中没有考虑

等待测试1等导致一个滴答声延迟,运行承诺立即解决

为了使代码按预期工作,应:

function test1 () {
  return new Promise(resolve => setTimeout(() => {
    console.log("1");
    resolve();
  }, 2000));
}
test1等不需要异步,因为它们不能从异步函数创建的承诺中获益。

等待test1等与等待setTimeout相同。。。直接地setTimeout不是基于承诺的,在承诺链中没有考虑

等待测试1等导致一个滴答声延迟,运行承诺立即解决

为了使代码按预期工作,应:

function test1 () {
  return new Promise(resolve => setTimeout(() => {
    console.log("1");
    resolve();
  }, 2000));
}

test1等不需要是异步的,因为它们不能从异步函数创建的承诺中获益。

在这些异步函数中,您忽略了一个事实,即您没有做任何可以等待的事情,因此它们将按照看起来正确的超时顺序执行。您忽略了一个事实,即您没有做任何可以等待的事情,在任何一个异步函数中,它们都将按照超时的顺序执行,这看起来是正确的。