我正在製作一個Angular 4應用程序。組件正在訂閱Observable。有時Observable調用相同的URL。例如,在任何http請求之前,如果需要刷新Access Token。但是如果我做出不同的3個http請求,它會刷新令牌的3倍。如何使用RxJs處理/排隊多個相同的http請求?
那麼如何讓只有一個http得到一個刷新的訪問令牌,並讓其他的可觀察對象等待第一個呢? (我知道'等待'不是Observables的好詞)。
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))
爲什麼不打電話給其中的第一個 –
訂閱的其他observables因爲我不知道哪一個將被稱爲或不。這不是很正常。 – Stefdelec