我試圖使用async.js庫來實現以下目標:確保兩個功能,另外,其中第一個函數內的異步調用後執行一個它
- 我有兩個功能:功能
a()
和功能b()
- 我想功能
a()
執行第一直到完成,然後我想功能b()
執行,直到完成 - 功能
a()
有它 內到另一個異步函數的調用
到目前爲止,我已經收集到了我應該使用異步庫中的series()
函數。這是我到目前爲止有:
async.series([
function(callback) {
var someResult = a();
callback(null, someResult);
},
function(callback) {
var someOtherResult = b();
callback(null, someOtherResult);
}
],
function(err, results) {
console.log('Yay');
});
這非常類似於async.js文檔中列出的代碼,但裏面a()
有一些其他的異步活動正在進行。
我想等到a()
裏面的所有活動完成之後再執行b()
。這可能嗎?如果我需要修改a()
的內容,需要做些什麼?我知道這種問題與應該如何將節點寫入節點(通常是js)有關,但a()
內部的異步操作是數據庫查詢。
如果需要,歡迎提供更多信息!
謝謝!
我猜測,在「a」調用的異步函數的回調內部調用「b」不是一種選擇嗎? – lucas
@lucas是的,這是一種可能性,但它使得代碼更少可讀。如果有必要的話,我可以做到。 –
如果'a'是異步的 - 它返回什麼?它有可能會返回一個承諾? – zerkms