Chinaunix首页 | 论坛 | 博客
  • 博客访问: 7204383
  • 博文数量: 510
  • 博客积分: 12019
  • 博客等级: 上将
  • 技术积分: 6836
  • 用 户 组: 普通用户
  • 注册时间: 2005-08-01 16:46
文章分类

全部博文(510)

文章存档

2022年(2)

2021年(6)

2020年(59)

2019年(4)

2018年(10)

2017年(5)

2016年(2)

2015年(4)

2014年(4)

2013年(16)

2012年(47)

2011年(65)

2010年(46)

2009年(34)

2008年(52)

2007年(52)

2006年(80)

2005年(22)

分类: Python/Ruby

2013-01-02 17:06:07

//使用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相关
阅读(5415) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~