0

我想从 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);
    }

这是什么原因?希望有人给点建议。在此处输入图像描述 谢谢

4

1 回答 1

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
于 2017-11-10T10:49:49.503 回答