有没有一种优雅的方式将承诺联系在一起

Is there an elegant way to chain promises together?

本文关键字:方式 承诺 在一起 联系 一种 有没有      更新时间:2023-09-26

我知道可以像这样连锁承诺:

somePromise
  .then(function() { return someOtherPromise; })
  .then(function() { return yetAnotherPromise; });

但是有没有更短的路?在我看来,这是一个非常常见的用例,所以我希望有一个像这样的内置机制:

somePromise.and(someOtherPromise).and(yetAnotherPromise);

也许我错过了什么?

(编辑:应该提到我使用节点Bluebird,即~Promises/A)

假设您有:

var promise2 = function() {
    return someOtherPromise;
};
var promise3 = function(promise2) {
    return someOtherPromise;
};

你这样的货车连锁店:

promise1
  .then(promise2) //promise 2 returns its promise
  .then(promise3); //promise3 get promise2 automatically injected as a parameter and do its job