У меня есть http-перехватчик.В этом перехватчике, прежде чем изменить запрос, мне нужен загрузчик для включения.
Что меня действительно беспокоит, так это то, что у меня много переключений.
почему?
- загрузчик асинхронный
- Мне также нужно перевести сообщение, передаваемое от перехватчика, в службу загрузчика.перевод сообщения также асинхронен.и в перехватчике я должен выполнить запрос, когда загрузчик и перевод завершают
Что я делаю в моей службе загрузчика
showLoader(message){
return this.translateService.get(message).pipe(switchMap( (translatedMessage)=>{
this.loader$ = from(this.loadingController.create({message: translatedMessage}));
return this.loader$.pipe(switchMap((loader)=>{
return from(loader.present());
}));
}));
}
в моемперехватчик
intercept(request: HttpRequest<any>, next: HttpHandler) {
return this.loaderService.showLoader("WAITING").pipe(
take(1),
switchMap( ()=>{
, поэтому уже есть 3 вложенных карты переключателей.и под ним мне нужно еще 2 или 3 карты переключения (один для получения токенов из хранилища и один для чего-то еще).в основном в конечном итоге с 5 переключателей.
Вопрос: Является ли вложение всех этих switchMaps плохой практикой?