使用场景
在一些,需要对事件更为精确的控制的场景下没比如我们想要监听点击事件,但是点击三次之后就不需要监听了。
那么,这时候,引入rxjs进行功能开发,是比较遍历有效的,能让我们省去,对事件的监听并记录点击的状态,以及需要处理取消今天的一些逻辑上的心理负担。
围绕异步处理
就Promise的优势而言,它带来了与回调函数不一样的编码方式——链式调用,将数据一层层往后抛,并且能够进行统一的异常捕获,不像使用回调函数就直接炸了,还得一个个trycatch;
将异步事件的处理流程化,写法更方便,但是:
- 无法取消
- 错误无法使用trycatch
- pending时,无法得知当前状态
当需要把同步处理混合进去处理时,需要做一些不太友好的代码迁移,(移进去才能保证某异步事件完成之后继续执行)
rxjs在使用方式上, 跟promise有点像,但在能力上,比他强大多了。不仅仅能够以流的方式,对数据进行控制,还内置许多工具方法,让我们十分方便的处理各种数据层面的操作。
响应式编程的大致思路
你可以用包括click
、hover
事件在内的任何东西创建 data stream
。stream 廉价且常见,任何东西都可以是一个Stream(变量,用户输入、属性、store、数据结构)
作为响应式编程的核心,流的本质是一个按照时间顺序的进行中事件的序列集合