【发布时间】:2015-04-09 09:49:42
【问题描述】:
我想一个接一个地执行一系列微风查询。在所有查询完成执行后,我正在使用 Q.all 执行操作。
var promises = [];
promises.push(datacontext.breezeQuery(config.breezeEntity.Product));
promises.push(datacontext.breezeQuery(config.breezeEntity.Client));
上面提到的微风查询函数返回多个承诺,我不希望第二个查询执行,直到第一个查询的所有承诺都得到解决。但我发现在使用 Q.all(promises) 时,第二个查询会在查询 1 的第一个承诺得到解决时开始执行。
如何确保在第一个查询的所有承诺(Promise1 和 Promise2)都得到解决之前,第二个查询不会开始执行。
dc.breezeQuery = function(entity){
return Promise1().then(function(){
return Promise2().then(function(){
});
});
};
【问题讨论】:
-
“返回多个承诺”是什么意思?
-
正如您在上面的 dc.breezeQuery 函数中看到的那样,有 2 个 return 语句,它们都在返回 Promise。
-
没有。
breezeQuery函数中只有一个return语句。另一个return语句在该回调函数中。每个只返回一个承诺。
标签: javascript promise breeze q