Rx.Observable.Of 没有发现错误

Rx.Observable.Of error is not catched

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

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

因为错误是在它的结果传递到 Observable.of 之前抛出的。这与 RxJS 无关,JS 解释器执行语句的顺序是这样的。

你可以这样做,例如:

Observable.defer(() => Observable.of(JSON.parse(localStorage.getItem('currentUser')).token))
  .catch(???) // returning Observable.of(console.log(er) is probably useless