Ember.RSVP.all.then 接受 1 个或 2 个参数吗?

Does Ember.RSVP.all.then take 1 or 2 parameters?

我正在创建一个发送一堆承诺的函数,我想让用户知道当他们全部解决时发生了什么。但是,我不确定 Ember.RSVP.all.then() 应该采用什么参数。现在我有这样的东西:

Ember.RSVP.all(promises).then(
  (success) ->
    do stuff...
  (error) ->
    handle errors
)

但是,我也见过这样的模式:

Ember.RSVP.all(promises).then(
  (values) ->
    do stuff...
).catch(
  (values) ->
    handle errors
)

如能对此作出任何澄清,我们将不胜感激。谢谢!

在一个不幸的火焰 war 与一个 SO Soup Nazi 并通读了这个未记录的方法的源代码之后,我终于弄清楚了是怎么回事。

RSVP.all() returns 一个承诺,因此将 then 链接到它上面需要 2 个函数作为参数(称为 resolve()reject())。此方法令人困惑的部分是 resolve() 传递了一组已解决的承诺,其中 reject() 传递了第一个被拒绝的承诺。