Node.js 异步/等待节点的功能性
我有以下带有async/await的代码片段 当我浏览上述代码片段时,我希望输出为1、2、3、4。但我得到了4,2,3,1。我错过什么了吗 等待测试1等的节点版本v10.13.0与等待设置超时相同。。。直接地setTimeout不是基于承诺的,在承诺链中没有考虑 等待测试1等导致一个滴答声延迟,运行承诺立即解决 为了使代码按预期工作,应: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(() => {
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等不需要是异步的,因为它们不能从异步函数创建的承诺中获益。在这些异步函数中,您忽略了一个事实,即您没有做任何可以等待的事情,因此它们将按照看起来正确的超时顺序执行。您忽略了一个事实,即您没有做任何可以等待的事情,在任何一个异步函数中,它们都将按照超时的顺序执行,这看起来是正确的。