Rxjs--基础篇

1.Rxjs基本概念

       从接触Angular2开始,一直在使用Rxjs但没有深究,最近抽空整体了解下Rxjs,略作整理。Rxjs可以理解为一个管理事件或任务序列(异步)的库,它提供了一个核心类型Observable可观察对象,卫星类型(围绕于Observable): Observer、Scheduler、Subject和操作符。这几个概念可以用下图来举例说明(windows画图工具随便画的,粗糙了些,示意还是清晰的):


Observable 可观察对象:是一串事件或消息的集合,在图中列举了一个需要发送一串数字序列的可观察对象。

Observer 观察者:是一组回调函数,用来处理Observable中的内容。在图中它接收了一串数字序列。

Subscription 订阅:Observable的执行,功能好比一个开关,可以订阅或取消订阅。在图中,如果订阅则它下游的Observer将收到数字;取消订阅,下游的Observer将收不到任何消息。一个Observable可以被多个Observer订阅。

Subject 主题:将Observable中的内容广播到多个Observer。在图中相当于一个多分支开关,如果主题被订阅则所有观察者都将收到同样的一串数字序列。

Scheduler  调度者:决定何时启动订阅和何时发送通知。如图所示,调度者不是必须的。在图中数字序列从Observable发出,经过调度,序列的顺序被改变了。

文中示例的Angular及Rxjs版本:

"@angular/core": "~4.0.0",
"rxjs": "5.0.1"

2.Rxjs简单示例

import { Observable} from 'rxjs/Rx';//引入可观察对象
public testRx1(){
         //1.产生一个可观察对象,包括即时发送和延时发送
         let myobservable = Observable. create(( observer : any)=>{
             observer. next( 1); //发送数字1
             observer. next( 2);
             observer. next( 3);
             setTimeout(() =>{ observer. next( 4);}, 1000); //1秒后发送数字4
            });
         //2.创建一个观察者仅包含next操作
         let myobserver = { next:( x : any) => console. log( 'receive data:', x)};
         console. log( 'before subscribe');
         //3.对可观察对象进行订阅
         let mysubscripton = myobservable . subscribe ( myobserver );
         //4.可以取消订阅
         //mysubscripton.unsubscribe();
         console. log( 'after subscribe');
    }
运行得到结果

3.Observable可观察对象

      可观察对象是一串消息或事件的集合,可以发送多值。在“Rxjs简单示例“中可以看到,使用Observale.create创造了一个可观察对象myobservable,在里面首先发送1,2,3三个值࿰

  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值