想要在for循环内部的函数全部运行完之后callback,除了我这种还有没有好的方法?
var getAllFollowPerson=function(followUrl,cb){ var followArray=[]; request({ url:followUrl, headers:header },function(err,res,body){ var $=cheerio.load(body); var followCount=parseInt($(".tip2 .tc")[0].children[0].data.match(/[0-9]+/)[0]); var pageAll=followCount/10+1; pageAll=(pageAll>20?20:pageAll);
for(num=1,i=1;i<=pageAll;i++){
setTimeout(function () {
getFollowPerson(followUrl+"?page="+(num++),followArray);
}, parseInt(Math.random() * 100*followCount));
}
setTimeout(function(){
cb(followArray);
},100*followCount);
});
}
21 回复
co框架:
co ->
for i in [0...rltSet.length]
eny = rltSet[i]
yield t.initTr eny,tbody
return
定义一个计数器 = array.length for 中每次调用外部的一个函数 外部函数每次 让 计数器--,并执行if(!计数器){你的代码} - -