Angular2中对Http的承诺vs Observable?

VSO*_*VSO 8 http promise observable angular

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

Gün*_*uer 8

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

Observable支持取消而不支持Promise.

使用subscribe()map(),而then()不是似乎没有给我增加太多的复杂性.你也可以用它toPromise()来得到Promise你需要的东西.

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

此外,如果使用FRP风格的编程,它可以方便地在任何地方获得可观察性.如果不希望这只是使用toPromise()给出一个Promise稍微简单的API.

  • 同意,但是一旦您订阅了流,您就无法链接任何异步函数以在解析后添加行为.在我看来,observable不是http调用的最佳选择,当一个简单的promise足够并且可以链接时,它们会导致样板文件的创建. (3认同)