加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

在Angular 2中使用Observable进行错误处理

发布时间:2020-12-17 17:44:26 所属栏目:安全 来源:网络整理
导读:我试图将HTTP请求中可能发生的任何错误传递给我所有服务的公共日志记录服务: import { Observable } from 'rxjs/Observable';import 'rxjs/add/operator/catch';constructor(logger: LoggerService) { }doSomething(): Observableany { return this.http .p
我试图将HTTP请求中可能发生的任何错误传递给我所有服务的公共日志记录服务:

import { Observable } from 'rxjs/Observable';
import 'rxjs/add/operator/catch';

constructor(logger: LoggerService) { }

doSomething(): Observable<any> {
    return this.http
        .post('/foo/bar',{})
        .catch(this.notifyErrors);
}

protected notifyErrors(error: any): Observable<any> {
    this.logger.log(error);

    return Observable.throw(error);
}

不幸的是,在notifyErrors方法中,这会丢失.我已经尝试将其定义为胖箭头,但我从TS编译器中获取了类型错误.我已经使用了Observable文档中的确切语法.

解决方法

如果传递函数引用,则需要修复此问题

.catch(this.notifyErrors.bind(this));

或者

.catch(() => this.notifyErrors());

另见https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functions

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读