Como manipular / enfileirar várias mesmas solicitações http com RxJs?
Estou criando um aplicativo Angular 4. Os componentes estão assinando o Observable. Às vezes, o Observable chama o mesmo URL. Por exemplo, 'atualize o token de acesso', se necessário, antes de qualquer solicitação http. Mas se eu fizer 3 solicitações HTTP diferentes, ele será "atualizado se necessário" 3 vezes o token de atualização.
Então, como fazer apenas um http obter um token de acesso atualizado e fazer com que os outros observáveis 'esperem' pelo primeiro? (Eu sei que 'esperar' não é a boa palavra para observáveis).
public get(url: string, options?: RequestOptionsArgs): Observable<Response> {
return this.getAccessToken().mergeMap(accessToken => {
return this.http.get(url, options);
});
}
// E
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))