代码是最好的语言,如下所示:
var async=require('./async');
//同步无关联
function series(){
async.series({
'ma':function(done){
var i=0;
setInterval(function(){
if(3==i){
clearInterval(this);
done(null,'ma结束');
return;
}
console.log("ma中运行"+new Date());
i++;
},1000);
},
'mb':function(done){
var i=0;
setInterval(function(){
if(3==i){
clearInterval(this);
done(null,'mb结束');
return;
}
console.log("mb中运行"+new Date());
i++;
},1000);
}
},
function(err,rs){
console.log(err);
console.log(rs);
}
);
}
//series();
//异步无关联
function parallel(){
async.parallel({
'ma':function(done){
var i=0;
setInterval(function(){
if(3==i){
clearInterval(this);
done(null,'ma结束');
return;
}
i++;
console.log('ma中运行'+new Date());
},1000);
},
'mb':function(done){
var i=0;
setInterval(function(){
if(3==i){
clearInterval(this);
done(null,'mb结束');
return;
}
i++;
console.log('mb中运行'+new Date());
},1000);
}
},
function(err,rs){
console.log(err);
console.log(rs);
}
);
}
//parallel();
function waterfall(){
async.waterfall([
function(done){
var i=0;
setInterval(function(){
if(4==i){
clearInterval(this);
done(null,'ma结束');
return;
}
console.log('ma中运行'+new Date());
i++;
},1000);
},
function(preVal,done){
var i=0;
setInterval(function(){
if(4==i){
clearInterval(this);
done(null,'mb结束');
return;
}
console.log(preVal+new Date());
i++;
},1000);
}
]);
}
waterfall();
本文通过示例代码介绍了使用async模块实现的三种异步任务处理方式:串行(series)、并行(parallel)及瀑布流(waterfall)。每种方式都通过具体的定时任务展示了其工作流程。
951

被折叠的 条评论
为什么被折叠?



