У меня есть общий http-запрос к api, но сначала я получаю apiUrl из моего хранилища ngrx, которое можно наблюдать, поэтому я могу применить его к своему URL-адресу http-запроса:
/**
* Get API wrapper
* @param endpoint The endpoint you want to call;
* @param params The params you want to pass in
*/
public get<T>(endpoint: string, params?: HttpParams): Observable<T> {
this.facade.getConfig.subscribe((config: AppConfig) => {
return this.authenticationService.GetToken().pipe(
map((jwt: string) => ({
headers: new HttpHeaders().set('Authorization', `Bearer ${jwt}`),
params: params
})),
mergeMap((options: { headers: HttpHeaders; params: HttpParams }) =>
this.http.get<T>(config.AppSettings.ApiUrl + endpoint, options)
)
);
});
return of();
}
Я завернул остальныетребуемый код внутри this.facade.getConfig.subscribe((config: AppConfig) => {
, как вы можете видеть.Могу ли я упростить это с помощью наблюдаемых операторов более высокого порядка, как я сделал это для заголовков и токена jwt?