var async = require('async');
function f1() {
setTimeout(function(){ console.log('111');},300);
}
function f2() {
setTimeout(function(){ console.log('222');},100);
}
async.series([f1,f2], function(err, result){
console.log(result);
});
打印:
111
否222
?为什么?
答案 0 :(得分:5)
f1()
和f2()
将异步完成,因此当它们“完成”时,它们会被调用以进行调用。试试这个:
var async = require('async');
function f1(done) {
setTimeout(function(){ console.log('111'); done(); },300);
}
function f2(done) {
setTimeout(function(){ console.log('222'); done(); },100);
}
async.series([f1,f2], function(err, result){
console.log(result);
});
编辑:关于“为什么”,这是因为f1()
会立即被调用,因此您的初始setTimeout()
按预期进行安排。但是,由于您永远不会告诉async
f1()
已完成,因此它永远不会调用f2()
。