Rxjs给应用带来的优势

原文链接: https://www.zhihu.com/question/40060342

一、简化异步 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)

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

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

上一篇:Day4-3 rxjava+rxandroid+retrofit+okhttp完成网络请求


下一篇:2022-2028全球与中国SaaS开销管理软件市场现状及未来发展趋势