RX响应式编程学习

来源:互联网 发布:火车网络票实名认证 编辑:程序博客网 时间:2024/05/18 02:38

  其实代码中已经用到了很多地方~但是看到张工ppt给出的定义,我还是一脸懵啊,不是就是处理个异步数据么。。。看来我的理解还是很肤浅吧


ReactiveXReactive 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


0 0
原创粉丝点击