Ric*_*ler 6 javascript promise observable rxjs angular
Angular 2+引入HttpClient了发出HTTP请求并将其发送到可观察到的RxJS的功能。我的问题是,为什么我会选择在标准上使用HttpClient的APIfetch来发出单个HTTP请求?
我熟悉RxJS,并且了解这张“四个基本效果”图表。
| one | many
-------------------------------------
sync | T | Iterable<T>
async | Promise<T> | Observable<T>
Run Code Online (Sandbox Code Playgroud)
Http请求是异步的,并返回一个值。为什么那应该是可观察的?我知道要将事件流组合成HTTP 请求流,但是我不明白为什么我只想使用一个HTTP 响应流。当您只有一个值时,这不就是使用数组吗?
我想念什么吗?通常,为什么要使用Angular的HttpClient?哪里不符合要求?
这只是一个不同的 API。Observables 有更好的方法来区分“事物如何流动”(所有操作符:map、merge、concat 等)与执行(.subscribe),这通常有助于获得更好的画面。如果请求失败,Plus 提供了用于取消或重试请求的有用方法。
Observable.toPromise()如果您需要 Promise API ,您可以随时使用(使用 async/await,这也非常有用)
所以对我来说,这只是表示同一件事的两种方式,每种方式都有其优势,但由于 Observable 更通用,他们使用了它 - 您可以从 Observable 来回转换为 Promise,但 Observables 带来了 Promises 没有的功能没有。
| 归档时间: |
|
| 查看次数: |
1800 次 |
| 最近记录: |