1
在我的應用程序中,我有n阻塞任務,一旦所有阻塞任務都執行完畢,我想最終執行我的非阻塞任務(依賴於來自這些阻塞任務的數據) 。阻止任務後執行非阻塞任務
我當前的解決方案是爲具有可變我得到由一個在阻擋回調遞增,然後它檢查是否我是Ñ,如果是這樣,則執行從屬,無阻塞的任務。
但是,我覺得這是遠遠不夠完美的;我認爲這是一個很好的解決方案與異步編程的基本問題(雖然我一直無法找到一個更好的解決方案)。
var i;
var result_one = null;
var result_two = null;
function render() {
if (i == 2) {
// do something with result_one and result_two
}
}
blocking.call(function(result) {
result_one = result;
i++;
render();
});
blocking.call2(function(result) {
result_two = result;
i++;
render();
});
所以,你必須例如3異步調用,並且要運行一個回調的任務,一旦所有3個異步任務都做了?等待n個阻塞任務來運行一個非阻塞任務沒有任何意義,因爲這很容易,反之則更難。 – BGerrissen 2011-04-01 20:32:02
爲什麼你需要回撥阻止呼叫?按順序執行n個同步調用,然後開始異步任務應該是非常直接的。請示例代碼。 – 2011-04-01 20:36:11
添加示例代碼。 – Sirupsen 2011-04-01 21:19:58