javascript - 如何构建涉及多重依赖的 promise 链?

标签 javascript promise

我想构建一个如下的 promise 链。箭头代表依赖关系:B需要A的输出; C 需要 A 和 B 的输出。

由于它不仅仅是一条链,而是一张网,我不知道如何以优雅的方式做到这一点。我的想法是让B的输出包含A的输出,并通过边(B,C)将其全部传递给C。我想这可能不是最好的方法,因为应该有某种方法将 A 的结果直接传递给 C。

AngularJS promise chain

最佳答案

如果你真的想向 C 提供独立的 Promise 结果,请尝试这样的事情

var promises = { a: A() };
promises.b = promises.a.then(function(a) {
    return B(a);
});

Promise.all(promises).then(function(results) {
    C(results.a, results.b);
});

否则,我认为没有问题

A().then(function(a) {
    B(a).then(function(b) {
        C(a, b);
    });
});

但实际上,这只是同一事物的两种写法。

关于javascript - 如何构建涉及多重依赖的 promise 链?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30793127/

相关文章:

javascript - 我如何根据下划线中的值获取键

javascript - Node + MongoDB - 连接池 - mongoldb-native

javascript - Axios 中的回调函数返回错误(使用 Vue,没有 jQuery)

node.js - 将异步代码视为 Node.js 中的线程?

MySQL Node JS .then() 不是函数

javascript - 按值从对象中删除属性

javascript - 在单元测试中禁用控制台的更好方法

javascript - 类型错误 indexOf() 不是 for 循环中的函数

javascript - 当await表达式是concat()的参数时,为什么async/await有不同的输出?

JavaScript 链接 promise : Calling next promise before previous has finished