0
点赞
收藏
分享

微信扫一扫

Rxjs给应用带来的优势

半夜放水 2022-03-24 阅读 58


一、简化异步 JavaScript 逻辑

  1. RxJS 把所有的异步事件都封装成 Observable。
  2. 因为所有的异步事件都被封装成了 Observable,所以所有的异步事件都可以用同样的 api 来订阅。
  3. RxJS 的 Operator 可以非常轻易地实现非常复杂的异步操作。

比如说,你要从后端获取数据,然后渲染一个表格。另外,当 WebSocket 推送事件,还有用户点击按钮时,要重新从后端获取数据。

不用 RxJS 的代码可能是这样的:

getData()
.then(renderList)

document.addEventListener("click", () => {
getData()
.then(renderList)
})

socket.on(() => {
getData()
.then(renderList)
})

用 RxJS 的代码可能是这样的:

const click$ = Rx.Observable.fromEvent(document, "click")
const socket$ = Rx.Observable.webSocket("xxxxxx")

const data$ = Rx.Observable
.merge(socket$, click$)
.startWith('init')
.switchMap(getData)

data$.subscribe(renderList)

二、降低并发问题的复杂性

把(已经发生或者将要发生的)某组事件(通过某种规则)转化成另一组事件,最终对其进行订阅的库。


举报

相关推荐

0 条评论