传播 Promise 并在新对象中扩展

Spread Promise and extend in a new Object

我有一些 Promise 可以返回对象。

现在我想 merge/extend 将它们变成一个新对象,因此我使用 Lodash's extend

var whenEverythingIsDone = Promise.all([firstPromise, secondPromise, ...])
                          .spread(_.extend);

现在我遇到了一个问题,我没有创建一个新对象只是扩展了 firstPromise。

我测试了这个,

var whenEverythingIsDone = Promise.all([{}, firstPromise, secondPromise, ...])
                          .spread(_.extend);

据我所知它有效。

这是一个好的解决方案吗?

会不会有错误?

我喜欢!非常简洁明了...如果 none 的 promise 解析为对象以外的其他东西,我预计不会有任何问题

它会正常工作,Promise.allPromise.resolve 所有数组项和空对象都没有问题。

虽然显式使用 partial application 我会发现它更干净:

var whenEverythingIsDone = Promise.all([firstPromise, secondPromise, …])
                           .spread(_.partial(_.extend, {}));