Получение значения из возвращаемого значения, наблюдаемого внутри catchError - PullRequest
0 голосов
/ 20 февраля 2019

budgetTestService.getBudgetDates возвращает наблюдаемое, как я могу получить значение BudgetDate[] из него в catchError?

this.budgetService.getBudgetDays(this.startDate, this.finishDate)
        .pipe(
          catchError(error => {
              self.timelineBudgetDates = self.budgetTestService.getBudgetDates(self.startDate, self.finishDate);
              return of('some return value');
            }
          )
        )
        .subscribe(res => {
          self.timelineBudgetDates = self.processDates(res);

        });

Ошибка:

Type 'Observable<BudgetDate[]>' is missing the following properties from type 'BudgetDate[]': length, pop, push, concat, and 25 more.

Ответы [ 2 ]

0 голосов
/ 20 февраля 2019

Вы можете использовать функцию высшего порядка, чтобы передать эту ссылку на перехват

const errorHandler=(self)=>error => {
              self.timelineBudgetDates = 
              self.budgetTestService.getBudgetDates(self.startDate, self.finishDate);
              return of('some return value');
            }
          )

this.budgetService.getBudgetDays(this.startDate, this.finishDate)
        .pipe(
          catchError(errorHandle(this))
        )
        .subscribe(res => {
          self.timelineBudgetDates = self.processDates(res);

        });
0 голосов
/ 20 февраля 2019

Если вы вызываете budgetService из компонента, вы сможете отобразить ответ без необходимости подписки.catchError выполняется только тогда, когда служба выдает ошибку.Пожалуйста, смотрите код ниже ...

    this.budgetService.getBudgetDays(this.startDate, this.finishDate)
        .pipe(
          map(res => { self.timelineBudgetDates = self.processDates(res); }), 
          catchError(error => {
              // handle error
            })
         );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...