建立Observable

3 篇文章 0 订阅

建立Observable : create

建立 Observable 的方法有非常多种,其中 create 是最基本的方法。

var observable = Rx.Observable.create(
    function(observer){
      observer.next('hello');
      observer.next('world');
    }
);

//订阅
observable.subscribe(
  function(value){
    console.log(value);
  }
);

订阅 Observable 跟 addEventListener 在实作上其实有非常大的不同。虽然在行为上很像,但实际上 Observable 根本没有管理一个订阅的清单,这个部份的细节我们留到最后说明!

这裡有一个重点,很多人认为 RxJS 是在做非同步处理,所以所有行为都是非同步的。但其实这个观念是错的,RxJS 确实主要在处理非同步行为没错,但也同时能处理同步行为,像是上面的程式码就是同步执行的。

Observable 同时可以处理同步与非同步的行为!

观察者Observer

Observable 可以被订阅(subscribe),或说可以被观察,而订阅 Observable 的物件又称为 观察者(Observer)。观察者是一个具有三个方法(method)的物件,每当 Observable 发生事件时,便会呼叫观察者相对应的方法。

注意这裡的观察者(Observer)跟上一篇讲的观察者模式(Observer Pattern)无关,观察者模式是一种设计模式,是思考问题的解决过程,而这裡讲的观察者是一个被定义的物件。

观察者的三个方法(method):

  • next:每当 Observable 发送出新的值,next 方法就会被呼叫。

  • complete:在 Observable 没有其他的资料可以取得时,complete 方法就会被呼叫,在 complete被呼叫之后,next 方法就不会再起作用。

  • error:每当 Observable 内发生错误时,error 方法就会被呼叫。

总结

Observable 可以同时处理同步跟非同步行为
Observer 是一个物件,这个物件具有三个方法,分别是 next, error, complete
订阅一个 Observable 就像在执行一个 function

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值