首页 >web前端 >js教程 >如何访问 JavaScript .then() 链中之前的 Promise 结果?

如何访问 JavaScript .then() 链中之前的 Promise 结果?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-12-27 14:59:10981浏览

How Can I Access Previous Promise Results in a JavaScript .then() Chain?

访问 .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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
上一篇:Test Dev.to下一篇:Js in bits - emicolon ;)