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