关于angular:Angular2中的Http的Promise vs Observable?

Promise vs Observable for Http in Angular2?

本问题已经有最佳答案,请猛点这里访问。

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


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

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

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

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

此外,如果使用FRP风格的编程,它可以方便地在任何地方获得可观察性。如果不希望这样,只需使用toPromise()就可以得到一个Promise和更简单的API。


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

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

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