【问题标题】:What are Observables and how does they make difference in HttpClient什么是 Observables 以及它们在 HttpClient 中有何不同
【发布时间】:2018-11-09 15:51:17
【问题描述】:

在 Angular 中,我们有 Observables,可以更轻松地处理 HTTP 请求。还有像

这样的功能

地图()、订阅()、管道()

我知道的不多。

我这里面临的问题是,什么时候使用这个功能,最适合哪种情况?我根本不关注这些。

【问题讨论】:

  • 你经历过Documentation
  • 是的,我去过,但无法关注它:(
  • 你有什么看不懂的,用例子清楚地解释了所有operators的用法
  • 订阅者和消费者部分。
  • 通过实施一些例子来理解它。边做边学!

标签: angular angular-observable


【解决方案1】:

这是一个广泛的主题(可能涵盖所有 RxJS),但这里是基础知识。

Observables 是可以异步发出值的对象,并在出现错误或不再发出对象时通知用户。您使用subscribe 注册以从可观察对象中获取值(好吧,从技术上讲,这不是 only 方式,而是通常和最基本的方式)。他们启用了这种流程:

  1. 已创建 Observable
  2. 您订阅并打印发出的值 (obs.subscribe(v => console.log(v))
  3. 时间过去了,事情发生了(调用订阅的方法早就返回了)
  4. observable 发出“Hello World”
  5. 您在subscribe 中传递的回调被调用,并且“Hello World”被打印到控制台。

这些在 HTTP 请求(通过 HttpClient)中很有用,特别是因为 HTTP 请求本质上是异步的。你把字节放在网络上,在某些时候字节会回来。您不希望您的网站在等待时冻结。因此; HttpClient 方法返回您订阅的 observables 以检索请求结果。

就您提到的方法(mapfilterpipe)而言,它们只是帮助方法,允许您在可观察对象发出时对其执行各种操作。还有很多,您可以在文档中找到关于每个的更多信息。 mapfilter的小结(没用过pipe):

  • map 接受源 observable 并允许您将其转换为不同类型的 observable。
  • filter 创建一个 observable,仅在满足谓词时才从源 observable 发出项目。

【讨论】:

    猜你喜欢
    • 2012-02-09
    • 2016-12-09
    • 2011-08-03
    • 1970-01-01
    • 2016-05-26
    • 2022-08-13
    • 2013-03-23
    • 2011-07-04
    • 2014-06-01
    相关资源
    最近更新 更多