这就是为什么我要使用 RxJS Observables 来实现一个函数,它将同步异步请求限制为定义的最大数量。
例如,如果最大数量为3,则请求将如下所示:
r-----R--->
r---R----->
r-------R->
----r---R->
------r--->
--------r->
--------r->
这是一个JSBin示例,其中所有请求都是使用请求模拟函数一次发送的 http://jsbin.com/vemewu/4/edit?js,console
function makeTestRequest() {
return new Promise((resolve, reject) => {
setTimeout(resolve, 1000);
});
}
let requests = _.range(0, 100).map(() => makeTestRequest);
var requests$ = Rx.Observable.fromArray(requests);
requests$.subscribe(
() => console.log('request done'),
() => console.log('error'),
() => console.log('completed')
);
谢谢!
答案 0 :(得分:1)
您可以查看<label for="dwfrm_cart_couponCode">
CODE
</label>
<input type="text" placeholder=" CODE" name="dwfrm_cart_couponCode" id="dwfrm_cart_couponCode">
<button type="submit" value="dwfrm_cart_addCoupon" name="dwfrm_cart_addCoupon" id="add-coupon">
</button>
<div class="error">
Please Enter a Code
</div>
或merge(maxConcurrency)
重载。您可以首先回顾这两个SO问题:Guard Authentication,How to limit the concurrency of flatMap?,然后是文档链接: