想要根据一系列其他承诺补充来回报承诺

时间:2016-10-10 21:45:43

标签: javascript promise bluebird q

继承我的代码:

var delete_card = function(){

  stripe.customers.deleteCard(
    this.service_id.stripe,
    this.credit_card[0].stripe_id
  )
  .then(function(obj){
    this.recipients.splice(0, 1);
    return this.save()
  })
}

条带调用和保存调用都返回promise。

我如何从delete_card方法返回一个承诺?

我会像新的承诺一样将它们全部包裹起来并从那里回复承诺吗? 我将如何构建,以便将错误和结果冒出来?

我希望能够像这样从来电者那里做点什么:

delete_card
.then(...)
.catch(...)

只是继续撰写链式承诺?

1 个答案:

答案 0 :(得分:5)

只需在delete_card函数中返回承诺。

var delete_card = function(){

  /************/
  /**/return/**/ stripe.customers.deleteCard(
  /************/
    this.service_id.stripe,
    this.credit_card[0].stripe_id
  )
  .then(function(obj){
    this.recipients.splice(0, 1);
    return this.save()
  })
}

编辑:由于代码差异如此微妙,我明确地说明了添加return的位置。