我在使用npm异步模块时遇到问题。文档建议以下代码结构将导致顺序执行添加到系列数组的函数,但是当我运行以下代码时,我只获得“第一个”console.log。有什么问题?
string mainDirectorsInZim = null;
if (zimOrganisation.OrganizationFields.ContainsKey("main_director"))
{
mainDirectorsInZim = (string)zimOrganisation.OrganizationFields["main_director"];
}
答案 0 :(得分:1)
async.series
传递您必须在每个函数结束时调用的callback
:
var async = require('async');
async.series([
function(callback){ console.log("first"); callback(null, 1); },
function(callback){ console.log("second"); callback(null, 2);}
]);
答案 1 :(得分:1)
异步期望在每个函数完成时调用回调,然后触发下一个函数等。
var async = require('async');
async.series([
function(callback){
console.log("first");
callback(null, 'data'); // first arg is error
},
function(callback){
console.log("second")
callback(null, 'data'); // first arg is error
}
], function(err, results) {
// results === ['data', 'data']
});
文档在解释这个
方面有些缺乏答案 2 :(得分:1)
当使用async.series
时,你应该为每个函数提供一个回调函数,该函数在执行时'告诉'async以向前移动到下一行函数:
async.series([
function(callback){ console.log("first"); callback();},
function(callback){ console.log("second"); callback();}
]);