2013-08-06 67 views
1

我想我可能沒有正確的想法如何async.js工作。在下面的例子中,回調函數沒有執行,我不知道爲什麼。異步並行 - 它是如何工作的?

async.parallel([ 
    function(){ 
    console.log('one'); 
    },function(){ 
    console.log('two'); 
    } 
], function(err, results) { 
    console.log('done!'); 
}); 

在控制檯中,我有:

one 
two 

我給這個代碼太http://codepen.io/tnguyen14/pen/GaJxl

筆我已經閱讀從異步網站上的文檔https://github.com/caolan/async#parallel幾次試圖尋找網上有關如何使這項工作的例子,但我仍然沒有得到它。

如果有人能向我解釋異步是如何工作的以及我的代碼有什麼問題,我將不勝感激。

回答

1

異步期望從它的參數異步控制流,e.i函數通過調用提供的回調函數傳遞關於完成的信號。

async.parallel從輸入列表中依次調用每個函數,然後在n次輸入函數完成n次信號完成後調用結果回調函數。

async.parallel([ 
    function(callback){ 
    console.log('one'); 
    $('.thing').html('one'); 
    callback(); // this is the way to tell async.parallel "I'm done". It can happen from different stack frame 
    },function(callback){ 
    console.log('two'); 
    $('.thing').html('one'); 
    setInterval(callback, 1000); // just to make it more async-ly. 
    } 
], function(err, results) { 
    console.log('done!'); 
    $('.result').html('one'); 
}); 

你的榜樣的叉子codepen:http://codepen.io/anon/pen/KBhob