別の解決策は、になりますソートの優先度キューを実装します。
あなたが加入者を追加するまで、HTTPリクエストは実行されないと私は理解しています。
Observable<Response> observable = http.get("/api/path", new RequestOptions({}));
requestPriorityQueue.add(HttpPriorityQueue.PRIORITY_HIGHEST, observable,
successResponse => { /* Handle code */ },
errorResponse => { /* Handle error */ });
これはrequestPriorityQueue
は、あなたのコンポーネントに注入されたサービスであることを前提としています。そのため、あなたはこのような何かを行うことができます。優先キューは、配列内のエントリを次の形式で格納します。
Array<{
observable: Observable<Response>,
successCallback: Function,
errorCallback: Function
}>
要素を配列に追加する方法を決定する必要があります。最後に、次のようにバックグラウンドで発生します:あなたは、次のNPMパッケージを使用してみてください可能性があり、新たな依存関係を追加することができるならば
protected processQueue() {
if (this.queueIsBusy()) {
return;
}
let entry: {} = getNextEntry();
let observable: Observable<Response> = entry.observable;
this.setQueueToBusy(); // Sets queue to busy and triggers an internal request timeout counter.
observable.subscribe()
.map(response => {
this.setQueueToReady();
entry.successCallback(response);
})
.catch(error => {
this.setQueueToReady();
entry.errorCallback(error);
});
}
:
// HttpPriorityQueue#processQueue() called at a set interval to automatically process queue entries
processQueue
方法は、このような何かをするだろう。 async-priority-queue
あなたはこれが唯一のように、この質問への答えではありません – Vineet
@Vineet角度2は、 '$ q' – Targaryen