有没有更简洁的方法来链接这些 Bluebird 承诺?
Is there a cleaner way to chain these Bluebird promises?
我有三个函数(A、B、C),每个函数 return 一个 promise。承诺链不需要先前承诺的任何信息,除非它们已完成。
B 必须等待 A 完成,C 必须等待 B 完成。
目前我有:
return A(thing)
.then(function () {
return B(anotherThing);
})
.then(function () {
return C(somethingElse);
});
感觉我浪费了很多 space(7 行实际上只有 3 行实际代码)。
这个works
return A(thing)
.then(B.bind(null,anotherThing))
.then(C.bind(null,somethingElse));
注意:绑定在 IE8 或更早版本上不可用 - 但有一个 polyfill - https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/bind
有关信息 - 在 ES2015 中你可以这样做 - iojs 将允许你启用箭头函数,但它们显然在某些方面被破坏了
return A(thing)
.then(() => B(anotherThing))
.then(() => C(somethingElse));
我有三个函数(A、B、C),每个函数 return 一个 promise。承诺链不需要先前承诺的任何信息,除非它们已完成。
B 必须等待 A 完成,C 必须等待 B 完成。
目前我有:
return A(thing)
.then(function () {
return B(anotherThing);
})
.then(function () {
return C(somethingElse);
});
感觉我浪费了很多 space(7 行实际上只有 3 行实际代码)。
这个works
return A(thing)
.then(B.bind(null,anotherThing))
.then(C.bind(null,somethingElse));
注意:绑定在 IE8 或更早版本上不可用 - 但有一个 polyfill - https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/bind
有关信息 - 在 ES2015 中你可以这样做 - iojs 将允许你启用箭头函数,但它们显然在某些方面被破坏了
return A(thing)
.then(() => B(anotherThing))
.then(() => C(somethingElse));