为了检索扁平 Promise 链中的中间 Promise 结果,有必要将链分成单独的
而不是依赖于 a 的参数单个回调来获取中间值,建议使用 Promise 组合器来创建所需的复合值。这种方法确保了清晰且结构化的控制流,使模块化变得简单。
考虑以下示例:
function getExample() { var a = promiseA(…); var b = a.then(function(resultA) { // some processing return promiseB(…); }); return Promise.all([a, b]).then(function([resultA, resultB]) { // more processing return // something using both resultA and resultB }); }
在此示例中,承诺组合器 Promise。 all 用于聚合 a 和 b 的结果。然后,Promise.all 后面的回调可以访问并利用 resultA 和 resultB 来构造复合值。
Q、Bluebird 等库,以及提供辅助方法(例如 .传播以简化多个 Promise 结果的处理ES5.
… return Promise.all([a, b]).then(function(results) { results.spread(function(resultA, resultB) { … }); });
Bluebird 提供了专用的 Promise.join 函数,作为 Promise.all 和 .spread 组合的更有效替代方案。
… return Promise.join(a, b, function(resultA, resultB) { … });
以上是如何访问扁平 Promise 链中的中间 Promise 结果?的详细内容。更多信息请关注PHP中文网其他相关文章!