.toPromise().then()
异步方式和pipe
异步方式此处使用toPromise().then()
方法synchronous
致电
deleteErrorList(errordetails) {
return this.http.post(this.apiUrl + 'RemoveErrorList', errordetails, this.requestOptions)
.toPromise().then((res: Response) => {
return res.json();
})
.catch(error => {
return Observable.throw(error);
});
}
HTML - *ngFor="let variantLabel of elementData.elementDataCollection"
但我的同事之一给了我一个建议,即map()
使用asyncpipe
和observables
模式,而不是toPromise()
。
所以我使用.map()
代替toPromise()
deleteErrorList(errordetails) {
return this.http.post(this.apiUrl + 'RemoveErrorList', errordetails, this.requestOptions)
.map((res: Response) => {
return res.json();
})
.catch(error => {
return Observable.throw(error);
});
}
HTML - *ngFor="let variantLabel of elementData.elementDataCollection | async"
但代码有助于
sync
调用的相同过程。 但我们不知道有什么区别?仅支持Observable
是否有帮助?哪一个是最好的方式?
答案 0 :(得分:1)
如果您使用ChangeDetectionStrategy.OnPush
| async
管道将在主机组件上调用ChangeDetectorRef.markForCheck()
以进行更改检测,请在下一回合包含此组件。