【发布时间】:2018-09-10 12:11:42
【问题描述】:
将 observable 对象转换为 promise 是否是一种好习惯,因为 observable 几乎可以在所有场合使用而不是 promise?
我最近开始学习 Angular,并在我的工作场所的一个新项目(Angular 5)中遇到了以下代码 sn-p。此代码 sn -p 用于加载数据列表,例如客户列表。此客户列表数据集是作为一次性操作接收的,而不是作为流接收的。因此,使用 Promise 没有技术限制。但我想知道是否有任何缺点或限制。
getViewDataForPage(): Promise<any> {
return this.commonDataService.getViewDataForPage(args_set)
.toPromise()
.catch(error => this._exceptionService.catchBadResponse(error));
}
//in commonDataService.ts
getViewDataForPage(args_set): Observable<any> {
/** logic goes here */
return this.httpConnection.post(viewDataRequest, args);
}
【问题讨论】:
-
感谢您的推荐。是的,我之前读过这篇文章。它的答案也有一些相互矛盾的想法。这就是为什么我单独提出这个问题,以了解有关性能下降等的任何附加细节。相互矛盾的想法:“如果你想使用反应式风格,只需在任何地方使用 observables。如果你只有 observables,你可以轻松编写。如果你把它们混合起来,它就不再那么干净了。” “我只是在声明,我认为在 NG2 中主要通过 http 运行 Observables 的人没有任何真正理由使用 Observables over Promises 进行调用。”
标签: javascript angular promise observable