javascript - 从 catch 子句访问类成员函数?

标签 javascript class angular this

我有一个服务,它返回一个 Observable,我在该服务上映射以解析响应,并使用一个 catch 子句来捕获错误(如果有)。但问题是我需要更新处理程序方法中的数据成员,并将其共享给其他组件使用。

import { stuff } from 'stuffs';

class AppService() {
    private errorMsg = new Subject<string>();

    // ... More methods here

    private handleError(error) {
        // Problem - `this` here doesn't point to AppService
        this.errorMsg.next('Sharable error message to component!');

        return Observable.throw(error.message);
    }

    callLoginApi(userDetails: {email: string, password: string}):        
         Observable<any> {
             return this.http.post(this.postURI, userDetails)
                         .map(this.extractData)
                         .catch(this.handleError);
    }
}

最佳答案

.catch(this.handleError.bind(this));

.catch(err => this.handleError(err));

关于javascript - 从 catch 子句访问类成员函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42318670/

相关文章:

javascript - 在 JavaScript 中将颜色填充到 HTML Canvas 的特定部分,如 Windows Paint

python - 避免昂贵的 __init__ 是使用 __new__ 的好理由吗?

javascript - 如何检测 javascript 中链接的类别?

javascript - Angular Material 数据表显示 [object Object]

angular - 类型 'Promise<string[]>' 不可分配给类型 'string[]'

javascript - 更改 css 链接并等待新的 css 加载

javascript - 如何在本地构建和使用 xterm.js?

c++ - 在 C++ 类中构造自定义模板

angular - 如何将方法 "getFreeDragPosition"用于 Angular 8 CdkDrag?

javascript - 谷歌地图 API 3 : Uncaught TypeError: Cannot call method 'setCenter' of undefined