Angular 2+ 介绍HttpClient
它发出一个 HTTP 请求并将它们发送到一个 RxJS observable 中。我的问题是为什么我会选择使用HttpClient's API https://angular.io/guide/http超过标准fetch https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API用于发出单个 HTTP 请求?
我熟悉 RxJS 并且我理解这张图表“四个基本效应” https://youtu.be/sTSQlYX5DU0?t=6m39s.
| one | many
-------------------------------------
sync | T | Iterable<T>
async | Promise<T> | Observable<T>
Http 请求是异步的并返回一个值。为什么它应该是一个 Observable?我理解想要将事件流组成 HTTP 流requests但我不明白为什么我想使用只有一个 HTTP 的流response。这不是就像只有一个值时使用数组一样吗?
我错过了什么吗?一般来说,为什么我应该使用 Angular 的 HttpClient? fetch 的不足在哪里?
这只是一个不同的 API。 Observables 有更好的方法来区分“事物如何流动”(所有运算符:map、merge、concat 等)与执行该操作(.subscribe),这通常有助于获得更好的了解。 Plus 提供了有用的方法,用于在请求失败时取消或重试请求。
并且您可以随时使用firstValueFrom(observeable)
如果您需要 Promise API(使用 async/await,这也非常有用)
所以对我来说,这只是表示同一事物的两种方式,每种方式都有其优势,但由于 Observable 更通用,所以他们使用了这种方式 - 你可以从 Observable 来回转换为 Promise,但 Observable 带来了 Promise 所没有的功能没有。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)