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

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

Mary-Kate Olsen
发布: 2024-12-27 14:59:10
原创
906 人浏览过

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

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板