Angular2中对Http的Promise vs Observable?

时间:2016-11-02 13:13:01

标签: http angular promise observable

基本上,标题所说的是,有没有理由使用observable over a promise进行http调用?看起来像不必要的过度复杂,因为所有的调用都会成功或失败,并且几乎没有真正的理由取消它。要求这是典型的用例,而不是典型的可观察性销售 - 去抖动(具有讽刺意味的是,无论如何,ng-debounce确实很好,而不会进行无用的调用)。

2 个答案:

答案 0 :(得分:8)

可观察量的巨大优势在这里非常重要。

Observable支持取消,而Promise则不支持。

使用subscribe()map()代替then()似乎并没有给我带来太多复杂因素。 如果您需要,也可以使用toPromise()获取Promise

有关详细信息,另请参阅Angular - Promise vs Observable

此外,如果使用FRP风格的编程,在任何地方都能获得可观察的方便。如果不需要,只需使用toPromise()即可获得Promise和更简单的API。

答案 1 :(得分:3)

promise和observable之间的最基本区别是如果没有功能订阅它,Observable模块将无法工作。因此减轻了服务器的负担。

在承诺中,无论您是否真正使用了响应,它都会在您的请求和有效负载ping服务器之后向您发送一个promise对象;有时不受欢迎。

基础是减少节点或其他服务器的负载。