【问题标题】:Rx.Observable.Of error is not catchedRx.Observable.Of 错误未被捕获
【发布时间】:2018-04-23 13:27:50
【问题描述】:

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

这是什么原因?希望有人指教。 谢谢

【问题讨论】:

  • 你能把getItem代码放在你的帖子里吗?
  • @mickaelw 。好的,我附上了。请检查
  • 你的错误是什么?对我来说,我只有未定义的变量,但捕获的错误为零
  • 错误是无法读取未定义的令牌。
  • 设置localstorage的时候有stringify currentUser的值吗?

标签: angular rxjs observable rxjs5 rxjs-dom


【解决方案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

【讨论】:

  • 谢谢@martin。它就像一个魅力。但是您能否提供另一种从本地存储中获取令牌并捕获错误的方法。那是因为,通过这种方式获取令牌的整体解决方案并不理想。提前致谢。
猜你喜欢
  • 1970-01-01
  • 2023-02-06
  • 2014-03-04
  • 2020-10-31
  • 1970-01-01
  • 2023-03-28
  • 2017-03-26
  • 2017-06-14
  • 2022-11-11
相关资源
最近更新 更多