我正在嘗試在節點js中使用異步來控制某些函數的執行流。在下面的代碼中,我有三個聲明的函數,應該分別打印'one','two'和'3',並執行其他任務(打印只是爲了讓我看到什麼時候執行)。異步 - 回調不是函數
async.waterfall([
function(callback) {
settings();
console.log("1");
callback(null, 'one');
},
function(callback) {
profile();
console.log("2");
callback(null, 'two');
},
function(callback) {
console.log("3");
groups();
callback(null, 'two');
}
]);
所以我得到的錯誤「回調不是一個函數」在回調線(NULL,「兩節」); 說實話,這可能是一個非常虛擬的問題,我不完全理解異步瀑布是如何工作的。但是我認真地嘗試了一下,通過閱讀例子,試圖實現短代碼並試着玩弄它。
有趣的是,如果使用async.series代替async.waterfall,則不會出現此類錯誤。但是,async.series將打印1,2,3,三,一,二。 瀑布模型中的數字按順序打印,但裏面的函數不按正確的順序執行。
要注意的是,前兩個函數 - 設置和配置文件 - 包括數據庫讀取和計算,而第三個函數只打印一些結果。
的珍貴版本,特別是如果你調用'async.series'的'async.waterfall',反之亦然,'async'內部出現此問題,當你窩'async'電話,將變得不可靠。 – Sandwich