我想要一個接一個地執行一個微風查詢數組。在所有查詢完成執行後,我正在使用Q.all來執行操作。Q.all用於解析承諾數組
var promises = [];
promises.push(datacontext.breezeQuery(config.breezeEntity.Product));
promises.push(datacontext.breezeQuery(config.breezeEntity.Client));
上面提到的breezeQuery函數返回多個承諾,我不希望第二個查詢執行,直到所有的第一次查詢的承諾得到解決。但是我發現在使用Q.all(promises)時,當查詢1的第一個promise被解析時,第二個查詢開始執行。
如何確保第二個查詢在第一個查詢中的所有承諾(Promise1和Promise2)都解決之前不會開始執行。
dc.breezeQuery = function(entity){
return Promise1().then(function(){
return Promise2().then(function(){
});
});
};
你是什麼意思「回報多重承諾」? – Bergi 2015-02-09 22:29:51
正如你在上面的dc.breezeQuery函數中看到的那樣,有2個return語句,並且它們都返回promise。 – user2585299 2015-02-10 14:34:34
不可以。「breezeQuery」函數中只有一個'return'語句。另一個'return'語句在該回調函數中。每個只會返回一個承諾。 – Bergi 2015-02-10 14:45:05