2016-12-14 20 views
0

我想为我的项目使用async节点模块我需要它以巨大的方式。当我尝试跟随代码比它不工作。请任何人帮我找出问题。我在节点js中的async.parallel模块查询

async.parallel({ 
    test : function(callback) { 
     for(var i=0; i<1000000000; i++){ 
      if(i == 999999999){ 
       console.log("test"); 
       callback(null, "test"); 
      } 
     } 
    }, 
    test1 : function(callback) { 
     console.log("test1") 
     callback(null, "test1"); 
    } 
}, function(err, results) { 
    // optional callback 
    console.log('results', results) 
}); 

这些代码将如何执行?我试过它的打印{ test: 'test', test1: 'test1' },但根据逻辑,如果并行进程执行比需要输出像{ test1: 'test1', test: 'test' }

如果我使用timeout insure for loop比它的工作正常。

回答

1

此从异步doc

注:平行为约踢断开I /并联O任务,而不是大约的代码并行执行。如果您的任务不使用任何定时器或执行任何I/O,则它们将实际上被串行执行。每个任务的任何同步设置部分都会一个接一个地发生。 JavaScript仍然是单线程的。

所以,你就是For循环是同步的方式

做任务