首页 > 解决方案 > 承诺链延伸

问题描述

我很难使用 Promise 链接。我有一个通过一堆承诺解决的函数,我想要另一个基本上扩展该承诺链的函数,但我很难过。所以这就是它的样子。

function foo() {
  new Promise(function (res, re) {
    /* code */
  }).then(function() {
    /* code */
  }).then(function() {
    /* code */
  }).then(function() {
    /* code */
  });
}

我希望函数 extend() {} 扩展 foo 中的承诺链。我尝试将 foo 包装为一个承诺,但由于某种原因,这也不太奏效。有没有办法在不重复代码的情况下做到这一点?谢谢你。

标签: javascriptnode.jspromise

解决方案


只需从以下位置返回承诺链foo

return new Promise(/*...*/).then(/*...*/)

然后它很容易:

foo().then(/*...*/)

推荐阅读