什么是Observables以及它们如何在HttpClient中发挥作用

时间:2018-05-30 17:42:50

标签: angular angular-observable

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

这样的功能
  

map(),subscribe(),pipe()

我不太了解。

我在这里面临的问题是,何时使用此功能,哪种情况最适合?我完全没有遵循这些。

1 个答案:

答案 0 :(得分:0)

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

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

  1. 可观察创建
  2. 您订阅并打印发布的值(obs.subscribe(v => console.log(v)
  3. 时间过去了,发生了一些事情(订阅被调用的方法已经很久了)
  4. 观察者发出" Hello World"
  5. 您在subscribe传递的回调被称为" Hello World"打印到控制台。
  6. 这些在HTTP请求中很有用(通过HttpClient),特别是因为HTTP请求本质上是异步的。你把字节放在线上,在某些时候字节会回来。在您等待的时候,您不希望您的网站冻结。因此, HttpClient方法返回您订阅的observable,以便检索请求结果。

    就你提到的方法(mapfilterpipe)而言,它们只是辅助方法,可以让你在发出的时候对它进行各种各样的事情。还有批次更多,您可以在文档中找到更多关于每个的内容。 mapfilter的快速摘要(避难所使用pipe):

    • map获取源可观察对象,并允许您将其转换为不同类型的可观察对象。
    • filter创建一个observable,只有在满足谓词的情况下才会从源observable中发出项目。