我想要一个接一个地执行一个微风查询数组。在所有查询完成执行后,我正在使用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