Javascript Angular 2:如何引用由Observable map调用的函数中的类变量

Javascript Angular 2:如何引用由Observable map调用的函数中的类变量,javascript,typescript,angular,Javascript,Typescript,Angular,在Angular 2应用程序中,在服务中使用Observable,我如何在映射中引用类的私有字段?如下面代码所示,我们如何在extractData函数中引用this.\u dataStore?谢谢 请注意,我确实看到这建议将函数体放在()=>{function body here}中,但我确实希望能够调用该函数,特别是这个逻辑可能会在其他地方使用(不希望复制和粘贴它) @Injectable() 导出类数据服务{ 构造函数(私有http:http){} 私有数据存储=[]; getData():

在Angular 2应用程序中,在服务中使用
Observable
,我如何在
映射中引用类的私有字段?如下面代码所示,我们如何在
extractData
函数中引用
this.\u dataStore
?谢谢

请注意,我确实看到这建议将函数体放在
()=>{function body here}
中,但我确实希望能够调用该函数,特别是这个逻辑可能会在其他地方使用(不希望复制和粘贴它)

@Injectable()
导出类数据服务{
构造函数(私有http:http){}
私有数据存储=[];
getData():可观察{
如果(this._dataStore.length>0){//返回缓存数据
返回(此数据存储)的可观察值;
}否则{
返回此.http.get('url')
.map(此.extractData)
.接住(这个.把手错误);
}
}
私有数据(res:Response){
如果(分辨率状态<200 | |分辨率状态>=300){
抛出新错误(“错误响应状态”+res.status);
}
var data=res.json();
对于(数据['items']中的var i){
this._dataStore.push(data['items'][i]);//此错误。_dataStore未定义
}
返回此。\u数据存储;
}

您可以将对
提取数据的整个调用包装在箭头函数中:

this.http.get("url")
         .map(data => this.extractData(data))
         .catch(err => this.handleError(err))
请注意,我对
this.handleError
也做了同样的操作。此技术将在您通话期间维护您对
this
的引用

this.http.get("url")
         .map(data => this.extractData(data))
         .catch(err => this.handleError(err))