angular3 rxjs观察者

例如,一个牛奶机构,供应牛奶,消费者去订阅牛奶,牛奶来了,消费者就可以去喝或者做其他处理

代码实现:

   niunaiSubject = new Subject();//创建牛奶机构
    niunailoginObservable = this.niunaiSubject .asObservable();//设置牛奶机构为被观察者


sub:subscription=

niunailoginObservable 

.subscribe((data)=>{
//喝牛奶   

});把观察者(消费者)绑定到被观察者(牛奶机构)上,

niunaiSubject .next(data);//牛奶机构送牛奶,触发观察者(消费者)喝牛奶动作

niunailoginObservable 

.subscribe(

sub

);




1 Observable

被观察者,相当于送奶机构。

实现上是一个函数对象,谁订阅了,就执行此函数的函数体。

2 Observer

观察者,相当于某一个订牛奶的个体。

实现上是一个对象,里面注册了三个回调函数,分别是next、error、complete。

Observable的函数体会执行Observer的回调函数。

3 subscribe

Observable和Observer怎么建立关系?送奶机构怎么知道给谁送牛奶?

通过subscribe函数,这样observer就和observable建立了观察和被观察的关系了。

4 subscription

Observable和Observer之间的关系,谁去维护呢?订阅牛奶的订单谁去管呢?

那么就是subscription来管理Observable和Observer之间的关系。

5 unsubscribe

unsubscribe解除Observable和Observer之间关系,牛奶不再送了。

6 中断的概念

Observable的函数体如果出错或complete,那么函数体就会停止执行,再有next也不会执行,如果函数体是下面代码这样执行的,因为setTimeout里面的next(那么observer.next(4)是不会执行的。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值