Ember.RSVP.all.then是否需要1或2个参数?

时间:2015-02-13 22:17:31

标签: ember.js rsvp-promise

我正在创建一个发送一堆承诺的函数,我想让用户知道当它们全部解决后发生了什么。但是,我不确定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
)

对此的任何澄清将不胜感激。谢谢!

1 个答案:

答案 0 :(得分:2)

在与SO Soup Nazi发生不幸的火焰战之后,通过这种无证方法的来源阅读,我终于弄明白了发生了什么。

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