响应式编程 (Reactive Programming)
functional reactive programming (FRP)
- 以响应式编程的方式思考, 放弃命令式且带状态的编程习惯,并且要强迫你的大脑以一种不同的方式去工作
wikipedia: Reactive programming
Stack-overflow: What is (functional) reactive programming?
The Reactive Manifesto
响应式编程是使用异步数据流进行编程
Event buses 或者 Click events 本质上就是异步事件流响应式编程的思路大概:可以用包括 Click 和 Hover 事件在内的任何东西创建 Data stream。Stream 廉价且常见,任何东西都可以是一个 Stream:变量、用户输入、属性、Cache、数据结构等等
可以用函数去组合、创建、过滤这些 Streams, Stream 能接受一个,甚至多个 Stream 为输入,你可以融合两个 Stream,也可以从一个 Stream 中过滤出你感兴趣的 Events 以生成一个新的 Stream,还可以把一个 Stream 中的数据值 映射到一个新的 Stream 中
Stream 就是一个按时间排序的 Events 序列,它可以放射三种不同的 Events:
- (某种类型的)Value
- Error
- Completed
监听一个 Stream 也被称作是订阅 ,而我们所定义的函数就是观察者,Stream则是被观察者,其实就是 Observer Design Pattern。
1 | --a---b-c---d---X---|-> |