Fre*_*ind 2 javascript asynchronous
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);
});
Run Code Online (Sandbox Code Playgroud)
它打印:
111
Run Code Online (Sandbox Code Playgroud)
不是222吗?为什么?
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);
});
Run Code Online (Sandbox Code Playgroud)
编辑:关于"为什么",这是因为f1()立即调用,因此您的初始setTimeout()按预期进行安排.但是,因为你永远不会告诉async它f1()已经完成,所以它永远不会调用f2().
| 归档时间: |
|
| 查看次数: |
56 次 |
| 最近记录: |