原文链接: 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)

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

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

©著作权归作者所有:来自51CTO博客作者mb607558ea4fef1的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. MySQL默认数据库介绍
  2. 面向对象、类和对象、封装---------私有private、this关键字
  3. ReactNative之从HelloWorld中看环境搭建、组件封装、Props及Stat
  4. 等待事件之enq: HW - contention
  5. 参数SQL_SLAVE_SKIP_COUNTER的奥秘
  6. Java过滤任意(script,html,style)标签符,返回纯文本--封装类
  7. Java正则表达式过滤脚本威胁--封装类
  8. 【JS基础入门】JavaScript基础之事件的操作详解及字符串数组常用
  9. input输入框相关事件整理

随机推荐

  1. Android SDK ADT下载地址
  2. StudyJams第一课的学习
  3. Android添加一个系统service
  4. Android 远程视频监控程序源码
  5. Android Notebook
  6. Android学习札记12:对Parcelable中describ
  7. Android GPS 开发
  8. android防止EditText自动弹出软键盘
  9. android EditView不换行的原因
  10. android dumpsys