【发布时间】:2016-03-16 07:35:58
【问题描述】:
问题:如何将getNextPaymentPayload/makePayment/confirmPayment 链接成一个循环?您可以随时使用hasAnyPayments 方法检查是否有任何付款。
问题:您不能并行付款。要进行付款,您需要等待前一笔付款完成。
示例:
SomeService
//first payment
.getNextPaymentPayload()
.then(paymentPayload => this.makePayment(paymentPayload))
.then(paymentResponse => this.confirmPayment)
//second payment
.then(SomeService.getNextPaymentPayload())
.then(paymentPayload => this.makePayment(paymentPayload))
.then(paymentResponse => this.confirmPayment)
//so on...
【问题讨论】:
-
hasAnyPayments返回什么? -
.then(getNextPaymentPayload)? -
@Alnitak
true或false。如果false- 你应该停止付款,如果yes- 你应该至少再进行一轮getNextPaymentPayload/makePayment/confirmPayment -
@elclanrs 你是对的。已更正
-
那么
hasAnyPayments是同步的,还是返回一个返回布尔值的promise?
标签: javascript promise ecmascript-6 bluebird