async 循环 同步执行 多个异步操作

async 真心挺好用的 哎 以前写的都是用闭包 循环完了 加和 再cb出来
如果用 async 就没那么多麻烦了

运行以下代码:
嗯 觉的还不错

var async = require('async');

var items = ["1","2","3"];

function set(i,cb) {
setTimeout(function(){
console.log(i + "我是猪");
cb()
}, 6000 - 1000 * i);

}

// 1.我们用setTimeout来模拟异步
// 2.同时为了说明“并行迭代存在异步的情况下,每个元素的迭代完成的时间将无法保证”
// 我们让第一个元素延时300ms执行,第二个延时200ms,第三个延时100ms
async.eachSeries(items, function( item, callback) {

console.log(item)
set(item,function () {
    callback()
})

}, function(err){
// err是由迭代器的回调函数传入
if(err) {
// 在迭代某个元素是传入了err.
// 官网的注释说是传入错误的话,后面的迭代将会终止,而事实并未终止,"1 is processed!"依旧被输出了.
console.log('Failed to process : ' + err);
}else{
console.log('All items have been processed successfully');
}
});

嗯 就是如此

for(var i=1;i<data.length;i++){
var itreator=function(item,finish) {
if (item[0] && item[0] != "undefined")
console.log(item)
finish();
}
async.eachSeries(data,itreator,function(err){
if(err){
cb(err)
}
})
}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容