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

angular 2 – http错误处理程序中的注入服务

发布时间:2020-12-17 07:53:42 所属栏目:安全 来源:网络整理
导读:我有一个方法handleError(),如文档 https://angular.io/docs/ts/latest/guide/server-communication.html#!#error-handling中所示 private handleError(error: any) { console.error(error); console.log(this.loginService); // - always undefined return
我有一个方法handleError(),如文档 https://angular.io/docs/ts/latest/guide/server-communication.html#!#error-handling中所示
private handleError(error: any) {
    console.error(error);
    console.log(this.loginService); // <- always undefined
    return Observable.throw(error);
}

我的问题是,this.loginService是未定义的,尽管它已在我的类中正确注入.它已经在其他方法中使用,但似乎在handleError中不可用.

http-catch调用方法的方式可能是问题吗?
如果是这样,我怎么能绕过那个?我需要在处理错误时执行一些逻辑.

这是一个关于如何将handleError方法设置为回调的示例(与文档完全相同)

this.http.get(url,ApiRequest.ACCEPT_JSON)
              .map(ApiHelper.extractData)
              .catch(this.handleError);
由于您直接传递函数,因此您没有类的此上下文.一个非常简单和最好的练习方法是使用lambda或“胖箭头函数”:
this.http.get(url,ApiRequest.ACCEPT_JSON)
    .map(res => ApiHelper.extractData(res))
    .catch(err => this.handleError(err));

关于何时使用lambdas的一个非常好的读物:https://stackoverflow.com/a/23045200/1961059

(编辑:李大同)

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

    推荐文章
      热点阅读