Это плохая практика, чтобы использовать много вложенных switchMap? - PullRequest
0 голосов
/ 11 февраля 2019

У меня есть http-перехватчик.В этом перехватчике, прежде чем изменить запрос, мне нужен загрузчик для включения.
Что меня действительно беспокоит, так это то, что у меня много переключений.

почему?

  1. загрузчик асинхронный
  2. Мне также нужно перевести сообщение, передаваемое от перехватчика, в службу загрузчика.перевод сообщения также асинхронен.и в перехватчике я должен выполнить запрос, когда загрузчик и перевод завершают

Что я делаю в моей службе загрузчика

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 плохой практикой?

...