其实代码中已经用到了很多地方~但是看到张工ppt给出的定义,我还是一脸懵啊,不是就是处理个异步数据么。。。看来我的理解还是很肤浅吧
ReactiveX是Reactive Extensions的缩写,一般简写为Rx,最初是LINQ的一个扩展,由微软团队开发。
微软给的定义是,Rx是一个函数库,让开发者可以利用可观察序列和LINQ风格查询操作符来编写异步和基于事件的程序,使用Rx,开发者可以用Observables表示异步数据流,用LINQ操作符查询异步数据流,用Schedulers参数化异步数据流的并发处理,Rx可以这样定义:Rx = Observables + LINQ + Schedulers。
ReactiveX.io 给的定义是, Rx 是一个使用可观察数据流进行异步编程的编程接口, ReactiveX 结合了观察者模式、迭代器模式和函数式编程的精华”
还是说说代码用到的地方,然后再去理解,就是类似观察者设计模式
比如B文件中定义一个流test
test :Subject<boolean> = new Subject<boolean>();
在某个时刻动作触发写入流:
this.test.next(true);
A文件中,改参数作为入参传入
@Input() test:Subject<boolean>;
那么,A文件中就一直监听这个流(专业术语叫订阅),一旦变化,就执行下面的操作
ngOnInit():void {
if (this.test === undefined) return;
this.test.subscribe((value) => {
if (value === true) {
console.log("hihi")
}
});
}
下面这个讲的很好,要画点时间理解,回头再问问,把相关的代码都分析下,我理解的太浅了
http://blog.csdn.net/womendeaiwoming/article/details/46506017
https://segmentfault.com/a/1190000003632186