我正在使用 Dojo 1.10
,它附带了 Deferred
和 Promise
API。所以场景如下:
var deferred_1 = new Deferred();
deferred_1 .then(function(value){
// do something
return something;
})
var deferred_2 = new Deferred();
deferred_2.then(function(value){
// do something
return something;
})
var completeFunc = function(value){
console.log("done");
}
//run completeFunc after completion of both deferred_1.then and
deferred_2.then
如何确保在运行另一个函数之前完成 deferred_1.then 和 deferred_2.then
中的两个延迟对象回调函数。
最佳答案
使用 Promise.all
创建一个 Promise,该 Promise 仅在您传递给它的所有 Promise 都得到解析后才解析。请注意,您必须保存对新 promise 的引用:
const deferred_1 = new Deferred();
const d1 = deferred_1.then(function(value) {
// do something
return something;
});
const deferred_2 = new Deferred();
const d2 = deferred_2.then(function(value) {
// do something
return something;
})
const completeFunc = function(value) {
console.log("done");
}
Promise.all([d1, d2]).then(completeFunc);
关于javascript - 确保一组 deferred.then 回调完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49911357/