【发布时间】:2022-04-15 20:21:41
【问题描述】:
我做了一个返回 Flux 对象的 spring 响应式后端。当我使用 angular httpClient 调用服务并订阅返回的 observable 时。结果永远不会被触发。那么,如果只有一个响应是可能的,为什么返回 Observable 而不是 Promise 呢?我已经对硬编码的 nodeJS SSE 服务进行了同样的尝试。我有相同的结果,但它适用于事件源。我的问题可能很奇怪,但 Observable 不是偶然选择的,所以我的理解肯定是错误的,我想理解。
【问题讨论】:
-
Observables 在单个响应中工作得非常好。为什么不应该呢?
-
发出单个值并完成的 observable 并不比 promise 复杂。
-
您也不必取消订阅已完成的 observable。
-
@WoutervanKoppen 如果组件也被销毁,Promises 将继续运行,因此就这个问题而言,这仍然没有有意义的不同。如果有什么是支持可观察的另一点,因为他们有更多的选择来处理这样的情况。
-
我同意它应该是 Promise,因为该类型静态保证单个值。 Promise 非常简单。您可以使用
defer轻松“升级”到 Observable。 Observable 的优点并不总是适用,那么为什么要强制增加复杂性呢?现在,toPromise已被弃用,情况更加不幸。
标签: angular rxjs observable angular7