为什么Angular httpClient返回一个Observable而不是Promise?

时间:2019-05-02 19:50:32

标签: angular rxjs observable angular7

我做了一个弹簧反应后端,它返回Flux <>对象。当我用角度httpClient调用服务并订阅返回的observable时。结果永远不会触发。那么,如果只有一个响应,为什么返回Observable而不是Promise?我已经对硬编码的nodeJS SSE服务进行了尝试。我有相同的结果,但是它可以很好地与事件源一起使用。我的问题可能很奇怪,但“可观察对象”并不是偶然选择的,因此我的理解肯定是错误的,我想理解。

2 个答案:

答案 0 :(得分:1)

Angular httpclient将始终返回一个observable(RXjs),诺言在新的Angular版本中已弃用,您需要订阅该observable

有关更多信息,请阅读documentation 要了解有关Observables的更多信息,请检查this(如果您不熟悉Rxjs,请检查this

答案 1 :(得分:1)

与发出HTTP请求时的承诺相比,可观察对象具有多个优点:

  • 重试失败的请求(retryretryWhen
  • 取消不必要/过时的请求(switchMapunsubscribe ...)
  • 更好的错误处理
  • 轻松组合多个HTTP调用,并控制如何执行它们(例如,一个接一个或并行执行)。