javascript - sintaxă typescript angular2 promise then callback
Sunt nou în TypeScript și nu pot găsi o alternativă pentru a optimiza o linie de cod, așa cum poți vedea mai jos. Trebuie să filtrez un array derivat dintr-o funcție callback pe care o trec unui promise.then()...
getAllItems(): Promise<MyItem[]> {
return this.http.get(this.itemsUrl).toPromise()
.then(this.extractData)
.catch(this.handleError);
}
getItem(id: number | string): Promise<MyItem> {
var that = this; // i want to avoid to use this...
return this.http.get(this.itemsUrl).toPromise()
// ...just here
.then(function(res) {
return that.extractData(res).filter(h => h.id === +id)[0];
})
.catch(this.handleError);
}
private extractData(res: Response) {
let body = res.json();
return body.data || { };
}
Codul de mai sus funcționează bine, dar vreau să folosesc o sintaxă mai scurtă (mai mult TypeScript, cred) pentru a realiza ceva de genul:
getItem(id: number | string): Promise<MyItem> {
return this.http.get(this.itemsUrl).toPromise()
// ... here again
.then(this.extractData => result.filter(h => h.id === +id)[0])
.catch(this.handleError);
}
evident că nu funcționează... aveți vreo sugestie, vă rog? Mulțumesc.
Răspuns #1
Trebuie să transmiți în continuare răspunsul metodei tale extractData:
getItem(id: number | string): Promise<MyItem> {
return this.http.get(this.itemsUrl).toPromise()
// ... here again
.then(res => this.extractData(res).filter(h => h.id === +id)[0])
.catch(this.handleError);
}
