访问 .then() 链中的先前 Promise 结果
为了使用 Promise 构建代码,“扁平 Promise 链”可以创建多个 .then() 回调。然而,访问此链中的中间承诺结果可能具有挑战性,因为它们通常不在后续回调的范围内。
打破链
要访问中间值,请考虑将链条分解成更小的碎片。不要附加单个回调并尝试重复使用其参数,而是将多个回调附加到需要每个结果值的同一个 Promise。通过合并库提供的 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 }); }
ES5替代方案:
… return a.then(function(resultA) { return b.then(function(resultB) { // more processing return // something using both resultA and resultB }); });
蓝鸟解决方案:
… return Promise.join(a, b, function(resultA, resultB) { … });
以上是如何访问 JavaScript .then() 链中之前的 Promise 结果?的详细内容。更多信息请关注PHP中文网其他相关文章!