在角度6中使用rxjs观测值的目的是什么?与异步/等待相比,rxjs有哪些优势?
我目前正在开发一个web应用程序,它使用angular 6作为前端框架。我还将使用一些api端点从服务器获取数据。在这里,我被卡住了,根据角度文档,它推荐使用RXJS,但是我在使用RXJS操作符时有点迷惑。在角度6中使用rxjs观测值的目的是什么?与异步/等待相比,rxjs有哪些优势?,rxjs,angular6,Rxjs,Angular6,我目前正在开发一个web应用程序,它使用angular 6作为前端框架。我还将使用一些api端点从服务器获取数据。在这里,我被卡住了,根据角度文档,它推荐使用RXJS,但是我在使用RXJS操作符时有点迷惑。 如果你只考虑API的HTTP调用,RXJS vs承诺带来的优势就不那么多了。retry操作符使出现错误时更容易重试,使用switchMap管理竞争条件可能更容易,但总体来说没有那么多 原因是http调用是“一次性”的。您发出一个调用,该调用只返回一个结果或错误。就像Promese是“一次性”
如果你只考虑API的HTTP调用,RXJS vs承诺带来的优势就不那么多了。
retry
操作符使出现错误时更容易重试,使用switchMap
管理竞争条件可能更容易,但总体来说没有那么多
原因是http调用是“一次性”的。您发出一个调用,该调用只返回一个结果或错误。就像Promese是“一次性”的东西一样
RxJS真正闪耀的地方是当您必须处理随时间推移可能有超过1个发射的事件流时。云和DOM是这类流源的两个示例。在这些情况下,你可以看到RxJS是如何使用类固醇的
这里有几个例子:
如果您只考虑API的HTTP调用,RXJS VS承诺带来的优势并不是很多。
retry
操作符使出现错误时更容易重试,使用switchMap
管理竞争条件可能更容易,但总体来说没有那么多
原因是http调用是“一次性”的。您发出一个调用,该调用只返回一个结果或错误。就像Promese是“一次性”的东西一样
RxJS真正闪耀的地方是当您必须处理随时间推移可能有超过1个发射的事件流时。云和DOM是这类流源的两个示例。在这些情况下,你可以看到RxJS是如何使用类固醇的
这里有几个例子:
- 如果我们在http调用完成之前取消订阅,则Observable是可取消的,http调用将被中止
- Observable具有更好的可组合性,例如:默认情况下,Promise有1个扁平化策略:
,RXJ有许多: ,promise1。然后(()=>promise2)
,
,
, - 更具表现力的是,它类似于异步操作的Lodash(有很多有用的 操作员)
- 如果我们在http调用完成之前取消订阅,则Observable是可取消的,http调用将被中止
- Observable具有更好的可组合性,例如:默认情况下,Promise有1个扁平化策略:
,RXJ有许多: ,promise1。然后(()=>promise2)
,
,
, - 更具表现力的是,它类似于异步操作的Lodash(有很多有用的 操作员)