Rx.Observable.Of ошибка не ловится

Я хочу вернуть токен из localStorage и поймать ошибку.

Observable.of(JSON.parse(localStorage.getItem('currentUser')).token)
.catch((er) => Observable.of(console.log(er))

Но это не ловит это. Интересно, когда я использую метод try catch, я могу поймать ошибку

  try {
      return Observable.of(JSON.parse(localStorage.getItem('currentUser')).token);
    } catch (er) {
      console.log(er);
    }

В чем причина этого? Надеюсь, кто-нибудь даст совет. Спасибо

1 ответ

Решение

Потому что ошибка выдается до того, как ее результат будет передан в Observable.of, Это не связано с RxJS, так как порядок операторов выполняется интерпретатором JS.

Вы можете сделать, например:

Observable.defer(() => Observable.of(JSON.parse(localStorage.getItem('currentUser')).token))
  .catch(???) // returning Observable.of(console.log(er) is probably useless
Другие вопросы по тегам