2017-06-11 19 views
0

私は角度の2のアプリケーションを持っています。これはサーバーからさまざまな数のIDを取り出し、IDごとに別のREST呼び出しをforkJoinで作成します。角度2の制限パラレルhttpコール

しかし、IDの量は数百に上がる可能性があり、突然数百回のREST呼び出しを並列に行うと問題になる可能性があります。

RxJとforkJoinオペレータを使用しているときの並列コール数を制限する方法はありますか?

+2

[RxJSと一度にリクエストの制限数]の可能な重複(https://stackoverflow.com/questions/34535685/limit-number-of-requests-at-a-time-with-rxjs) – developer033

答えて

2

ONWの方法はbufferCountを使用することです:

Rx.Observable.from([1,2,3,4,5,6,7,8]) 
 
    .bufferCount(3) 
 
    .concatMap(items => { 
 
    console.log('ConcatMap', items); 
 
    let tasks = items.map(item => Rx.Observable.timer(Math.random() * 1000).do(() => console.log(item, 'ready'))); 
 
    return Rx.Observable.forkJoin(...tasks); 
 
    }) 
 
    .subscribe()
<script src="https://npmcdn.com/@reactivex/[email protected]/dist/global/Rx.js"></script>

+0

ブリリアント:)!!! – Maxime

関連する問題