【问题标题】:Observables vs Promises for Single Synchronous Request/Response [closed]单个同步请求/响应的 Observables 与 Promise [关闭]
【发布时间】:2018-03-10 21:17:51
【问题描述】:

我需要在 RxJs Observables 和 Promises 之间做出选择,所以这是我的问题:

  1. 对于具有 1 个值的单个同步请求/响应,是否值得使用 Observable 而不是 Promise

  2. 如果值得的话,在这种情况下使用 Observables 而不是 Promise 有什么好处?

【问题讨论】:

标签: angular http promise observable


【解决方案1】:

对于具有 1 个值的单个同步请求/响应,是否值得使用 Observable 而不是 Promise?

是的。

如果值得的话,在这种情况下使用 Observables 而不是 Promises 有什么好处?

您可以访问大量可应用于可观察对象的运算符:

  • 如果出现错误,您可能需要重试请求
  • 如果响应需要很长时间才能返回,您可能需要取消它
  • 如果需要调用多个服务,可以通过switchMap、combineLatest、forkJoin等多种方式进行组合。

Observable 是 Angular 不可或缺的一部分。它们很难掌握(比 Promise 更难),但您需要了解它们才能充分使用该框架。所以我不会试图避开它们。

【讨论】:

  • 感谢您的回答,Observables订阅和退订的管理成本如何?
  • “管理成本”是什么意思?您通常不必取消订阅单个事件的 observable。调用 subscribe() 与调用 then() 并没有太大区别,不是吗?
  • 嗯,然后我就糊涂了。为什么我没有取消订阅单个事件? -- 我不希望观察者在将数据推送给单个事件的观察者后保持活动状态。
  • 一旦一个可观察对象完成(或错误),所有观察者都会自动取消订阅。并且单个事件的 observable 在发出其唯一事件后立即完成。
猜你喜欢
  • 2023-03-28
  • 1970-01-01
  • 2017-04-18
  • 2016-07-18
  • 1970-01-01
  • 1970-01-01
  • 2018-12-10
  • 2014-09-27
  • 1970-01-01
相关资源
最近更新 更多