我想从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);
}
答案 0 :(得分: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