蓝鸟:链.然后循环处理
Bluebird: chain .then handlers in a loop
问题:
如何将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
将返回一个Promise,该Promise最终解析为布尔值:
let doPayments = () => {
return hasAnyPayments().then((hasAny) => {
if (!hasAny) {
return Promise.resolve(); // all done
} else {
return SomeService.getNextPaymentPayload()
.then(paymentPayLoad => this.makePayment(paymentPayLoad))
.then(paymentResponse => this.confirmPayment(paymentResponse))
.then(doPayments); // "recurse"
}
}
}
相关文章:
- 如何使用jquery处理php循环通过元素
- Javascript在for循环中等待处理请求
- 在循环中附加事件处理程序时出现浏览器性能问题
- 如何处理javascript中的循环引用,类似于Excel提供迭代限制的方式
- Emberjs#每个循环不处理数组数据
- jQuery:如何在没有for循环的情况下将事件处理程序应用于$('#text'+'任意整数
- 在嵌套循环中处理 AJAX (Angularjs)
- RxJS:在循环中处理错误.js自定义驱动程序
- 在处理元素单击事件期间,在循环内部调用window.open()
- 将事件处理程序分配给for循环中的每个按钮
- 如何在循环中声明事件处理程序
- 数组循环 - 处理下拉列表中的空值
- 节点.js:如何循环处理传入数据
- JavaScript 中的事件处理程序如何由事件循环处理
- Javascript异步循环处理
- 蓝鸟:链.然后循环处理
- 我可以在JavaScript中同时循环处理两个对象吗
- Jquery美元.每个循环处理数组
- 第一次使用AJAX时,JSON通过AJAX循环处理多个页面上的数据
- 如何在JavaScript中暂停主循环处理,直到按下一个键