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

时间:2017-02-18 17:55:09

标签: 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);
    }
}

1 个答案:

答案 0 :(得分:2)

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

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