-2

在 Angular 中,我们有 Observables 可以更轻松地处理 HTTP 请求。除了有这样的功能

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

我知道的不多。

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

4

1 回答 1

2

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

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

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

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

至于您提到的方法(map, filter, pipe),它们只是辅助方法,允许您在可观察对象发出时对其执行各种操作。还有更多,您可以在文档中找到关于每个的更多信息。mapfilter(未使用pipe)的快速总结:

  • map接受一个源 observable,并允许您将其转换为不同类型的 observable。
  • filter创建一个仅在满足谓词时才从源 observable 发出项目的 observable。
于 2018-05-30T17:58:53.030 回答