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

Pre*_*d05 -1 observable rxjs angular angular7

我做了一个 spring 反应式后端,它返回 Flux<> 对象。当我使用 angular httpClient调用服务并订阅返回的 observable 时。结果永远不会被触发。那么,如果只有一个响应是可能的,为什么返回 Observable 而不是 Promise 呢?我已经对硬编码的 nodeJS SSE 服务进行了相同的尝试。我有相同的结果,但它适用于事件源。我的问题可能很奇怪,但 Observable 不是偶然选择的,所以我的理解肯定是错误的,我想了解一下。

Alb*_*era 7

在发出 HTTP 请求时,与 Promise 相比,Observables 有几个优点:

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

  • 愿意添加/详细说明如何使用 Observables 更好地处理错误吗? (2认同)