2016-12-14 50 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循環是同步的方式

做任務