gpt4 book ai didi

node.js - 与异步系列控制流混淆

转载 作者:太空宇宙 更新时间:2023-11-03 22:47:43 24 4
gpt4 key购买 nike

我是nodejs的新手。我想连续执行两个任务。我使用异步模块

var async = require('async');
async.series([
function () {
console.log("step 1");
}, function () {
console.log('step 2');
}]);

console.log("end");

我预计结果是

step 1
step 2
end

但结果是

step 1
end

为什么?

最佳答案

每个函数都是异步的,因此会传递一个回调。为了进入下一步,您需要调用回调。

var async = require('async');
async.series([
function (callback) {
console.log("step 1");
callback();
},
function (callback) {
console.log('step 2');
callback();
}
]);

console.log("end");

请注意,这将执行您想要的操作,但您的 end 仍然处于一个奇怪的位置。系列回调实际上并不是异步的,因此一切都会同步运行。如果全部异步运行,您的结束回调将在中间的某个地方运行。确实,应该是最后回调。

例如

var async = require('async');
async.series([
function (callback) {
console.log("step 1");
setTimeout(callback, 100);
},
function (callback) {
console.log('step 2');
setTimeout(callback, 100);
}
], function(err){
console.log("end");
});

关于node.js - 与异步系列控制流混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20695895/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com