Как я могу предотвратить появление ошибок в обработчике ошибок? - PullRequest
0 голосов
/ 02 мая 2018

В настоящее время в одном из моих методов обслуживания у меня есть что-то вроде этого:

this.get(foo).catch((e) => this.errorHandler(e));

Где errorHandler:

errorHandler(error: HttpErrorResponse) {

    if (error.status === 422) {
      this.openSnackBar('Number already exists');
      return Observable.throw(error.message || 'Server Error');
    } else {
      return Observable.throw(error.message || 'Server Error');
    }
  }

Хотя это работает просто отлично, оно выдает ошибку, и я вижу ее в окне консоли. Мне было интересно, когда я обрабатываю сообщение об ошибке в удобном для пользователя сообщении, как в приведенном выше примере со снэк-баром, как я могу предотвратить его появление / отображение в окне консоли?

Я просто хочу отловить ошибку, проверить статус и вернуть снек-бар с удобным для пользователя сообщением. Я заметил, что если я уберу бросок выше, код перестанет работать.

1 Ответ

0 голосов
/ 02 мая 2018

После того, как вы обработали свое исключение (например, показав предупреждение, тост или что-то еще), верните Observable.empty() вместо Observable.throw. Observable.empty является наблюдаемой, которая «завершается» немедленно, без «следующих» каких-либо значений; это остановит ваш наблюдаемый поток правильно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...