//使用process.nextTick将下一步放在队列的最后,让nodejs有机会去处理那些已经在等待的任务。
//通过它可优美的把逻辑异步变为串行
参考http://freewind.me/blog/20120516/926.html
var wait = function(mils) {
var now = new Date;
var end = new Date;
while(end - now < mils)
end = new Date;
};
function compute() {
// performs complicated calculations continuously
console.log("start computing");
wait(1000);
console.log("working for 1s, nexttick paramerter");
process.nextTick(compute);
}
compute();
综上,我们可以把循环问题,如for等循环,变为这样的形式。特别是对于循环有次序要求的需求
比如如下形式
for (i in arr)
//do_work(arr[i],callback)
若,do_work(arr[i])有前后关联,比如后面的计算需要前面的,arr[i]依赖arr[i-1]....
而每次do_work(arr[i])内部又是个异步调用,比如io相关
阅读(5479) | 评论(0) | 转发(0) |