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);
});
}
async 呀
好的,我用一下
eventproxy after
co框架:
co ->
for i in [0...rltSet.length]
eny = rltSet[i]
yield t.initTr eny,tbody
return
感谢各位的热心解答
@leapon 我也是用这个,
定义一个计数器 = array.length for 中每次调用外部的一个函数 外部函数每次 让 计数器--,并执行if(!计数器){你的代码} - -
把这些函数放在一个堆栈中,如push到Array里,然后执行这个堆栈,每执行完一个函数,销毁堆栈引用,并检测堆栈是否为空
@MiguelValentine 这思路不错~
@enmoon 这么高大上,大神真多啊
(function f(){ … if f(i < 100); else return; });
@guoyanhui 谢谢啊,已经用async解决,不过怎么把这坟挖出来了。。。。。。
是不是该给帖子加个 盖棺定论 的flag。楼主可以再问题解决时点一下。是个防盗墓功能。
@leapon 还有这个功能?点哪个呢?
@Pcman1056 没有呢。看来会有用的。
promise.all
楼上正解,结合co,这是处理异步最好的方式
@leapon 赶紧加吧,又来挖了,,,大家的热情真高啊,,,但我已无力回复。。。
@Pcman1056 @leapon 这才叫讨论嘛。。。
@alsotang 是的,多多讨论
@Pcman1056 已经是promise的年代了。我锁帖了