1.6 函数响应式编程的优势
RxJS这套模型并不是闭门造车臆想出来的概念,这套模型已经被证明很成功,这是因为它具备下面这些特点:
❑ 数据流抽象了很多现实问题。
❑ 擅长处理异步操作。
❑ 把复杂问题分解成简单问题的组合。
现实应用中,很多问题都可以抽象为数据流的问题来解决:以网页应用的前端领域为例,网页DOM的事件,可以看作为数据流;通过WebSocket获得的服务器端推送消息可以看作是数据流;同样,通过AJAX获得服务器端的数据资源也可以看作是数据流,虽然这个数据流中可能只有一个数据;网页的动画显示当然更可以看作是一个数据流。正因为网页应用中众多问题其实就是数据流的问题,所以用RxJS来解决才如此得心应手。
RxJS擅长处理异步操作,因为它对数据采用“推”的处理方式,当一个数据产生的时候,被推送给对应的处理函数,这个处理函数不用关心数据是同步产生的还是异步产生的,这样就把开发者从命令式异步处理的枷锁中解放了出来。
RxJS中的数据流可能包含复杂的功能,但是可以分解成很多小的部分来实现,实现某一个小功能的函数就是操作符,本书大部分内容都是在介绍操作符,可以说,学习RxJS就是学习如何组合操作符来解决复杂问题。