【发布时间】:2016-11-23 08:19:42
【问题描述】:
我有一个 Angular 2 服务,它在其构造函数中调用一个 http 端点来检索当前用户。如果用户尚未通过身份验证,端点将抛出 401。
我的问题是,即使我吃到错误,NG2 也会记录异常。
这是我的服务功能:
getVal(): Observable<TestData | boolean> {
return this.http.get('badUrl', new JsonGetOptions())
.map(this.jsonParser)
.catch((error: any) => {
if (error.status && (error.status === 401 || error.status === 404)) {
return Observable.of(false);
}
return Observable.throw(error);
});
}
这里是服务构造函数:
constructor(public http: Http) {
this.valSource = new ReplaySubject<TestData | boolean>(1);
this.val$ = this.valSource.asObservable();
this.getVal()
.subscribe(val => {
this.valSource.next(val);
});
}
这里是Plunker
我已简化代码并将其更改为吃 HTTP/404 错误以在 plunker 中工作。
一切都按预期进行。看到控制台错误真是烦人。
【问题讨论】:
-
好吧,你做了
console.log('eating error', error);所以我希望它会在控制台中看到。 -
console.logs 用于显示正确的代码正在执行。查看 zone.js 中的 console.error。