私はAngular 4アプリを製作しています。コンポーネントがObservableを購読しています。ときにはObservableが同じURLを呼び出します。たとえば、http要求の前に必要に応じて「アクセストークンを更新する」などです。しかし、別の3つのHTTPリクエストを作成すると、リフレッシュトークンの3倍の「必要に応じてリフレッシュ」します。RxJで複数の同じhttpリクエストを処理/キューに入れる方法は?
どのようにして、1つのhttpでリフレッシュされたアクセストークンを取得し、最初のものについて他の観測値を待機させるのですか? (私は '待つ'はオブザーバブルのための良い言葉ではないことを知っている)。
public get(url: string, options?: RequestOptionsArgs): Observable<Response> {
return this.getAccessToken().mergeMap(accessToken => {
return this.http.get(url, options);
});
}
//そして
this.get('www.myapi.com/one').subscribe(data=>console.log('one',data))
this.get('www.myapi.com/two').subscribe(data=>console.log('two',data))
this.get('www.myapi.com/three').subscribe(data=>console.log('three,data))
なぜ私はどちらが呼び出されるか分からないので、最初のもののサブスクライブ内の他の観測値を呼び出さないでください。 –
そしてそれはあまりrxjs-lyではありません。 – Stefdelec