javascript - 确保一组 deferred.then 回调完成

标签 javascript promise dojo deferred

我正在使用 Dojo 1.10,它附带了 DeferredPromise 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/

相关文章:

c# - 在 asp.net 中使用 dropzone.js

javascript - 使用 idToken 或 accessToken 的 Azure AD 身份验证失败。我应该使用哪一个?

javascript - 使用工厂获取数据 json

php - 什么基于浏览器的所见即所得编辑器尊重我的 HTML 格式?

javascript - 在不重新创建标记的情况下测试 JavaScript 代码?

javascript - jquery中的Ajax调用刷新Django中的数据库模型

javascript - 在 Javascript 中使用 Promise 不起作用

node.js - 如何使用 Q-IO 设置 HTTP 请求超时

javascript - 根据 POST 中的 dstore/Rest 结果更新 OnDemandGrid,而不是 PUT

css - Node compile.js 不生成组合的 css 文件