gpt4 book ai didi

javascript - typescript 语法angular2 promise 然后回调

转载 作者:太空狗 更新时间:2023-10-29 19:31:06 25 4
gpt4 key购买 nike

我是 typescript 的新手,我找不到优化代码行的替代方法,如下所示。我需要过滤从传递给 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 || { };
}

上面的代码运行良好,但我想使用更短的(我猜是更多的 typescript )语法来实现类似的东西:

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);
}

显然它不起作用...有什么建议吗?谢谢。

最佳答案

您仍然需要将响应传递给您的 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);
}

关于javascript - typescript 语法angular2 promise 然后回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38102711/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com