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)
}
})
}