我有一个服务,它返回一个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);
}
}
答案 0 :(得分:2)
.catch(this.handleError.bind(this));
或
.catch(err => this.handleError(err));