【问题标题】:Is there any difference in overhead when using Observables as opposed to promises?使用 Observables 与 Promise 相比,开销有什么不同吗?
【发布时间】:2016-07-28 19:55:01
【问题描述】:

我正在考虑是否在我的新 Angular 2 应用程序中使用 observables 或 Promise。有人告诉我 observables 可以做任何 Promise 可以做的事情,但我很好奇 observables 与 Promise 相比需要多少开销。有没有人运行基准测试?还有什么理由使用 Promise 吗?

【问题讨论】:

标签: angular


【解决方案1】:

虽然 observable 和 Promise 都处理异步处理,但还是有一些区别:

  • Observables 可以被取消。承诺不能。
  • Observables 是惰性的,只有在订阅回调时才会执行。 Promise 总是在创建时执行。
  • Observable 可以处理多个事件,而 Promise 只能解决一次。
  • Observables 提供一组操作符来创建异步数据流(如mapflatMapfilter、...)

【讨论】:

  • 感谢您的回答,但我对开销问题更感兴趣。 observables 比 promises 更需要资源吗?如果是,需要多少?
  • 不客气!我认为使用 observables 时没有开销。您需要注意的是不要忘记取消订阅时创建的订阅...
  • 唯一的问题可能是你需要导入 rxjs 才能使用 observables,甚至认为你可以手动选择你需要的部分。 Rxjs 仍然很大。但是您已经在使用 Angular 2,所以无论如何您都需要导入 rxjs。
  • @FilipLauc 是的,你是对的!您可以选择要使用的内容:import 'rxjs/add/operator/map';。默认情况下,仅包含最小集。有关详细信息,请参阅此问题:stackoverflow.com/questions/34515173/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-12-25
  • 2015-07-20
  • 2015-10-24
  • 1970-01-01
  • 2018-10-08
  • 2012-12-09
  • 1970-01-01
相关资源
最近更新 更多