ReactiveX 学习笔记(1)

IObservable<T>

IObservable(被观察者)接口,表示可观察的数据流对象。被观察者接口只包含一个Subscribe方法。调用该方法,意味着观察者对象开始观察数据流。开始观察之后如果需要停止观察,必须销毁该方法所返回的IDisposable对象。

//Defines a provider for push-based notification.
public interface IObservable<out T>
{
//Notifies the provider that an observer is to receive notifications.
IDisposable Subscribe(IObserver<T> observer);
}

IObserver<T>

IObserver(观察者)接口,表示观察数据流的观察者对象。观察者接口包含三个方法:OnNext,OnError,OnCompleted。通过调用这三个方法,作为被观察者的数据流对象通知观察者对象前者即将进行某种操作。OnNext方法表示数据流即将提供数据。OnError方法表示数据流发生异常。OnCompleted方法表示数据流成功完成自身使命,不再提供数据。

//Provides a mechanism for receiving push-based notifications.
public interface IObserver<in T>
{
//Provides the observer with new data.
void OnNext(T value);
//Notifies the observer that the provider has experienced an error condition.
void OnError(Exception error);
//Notifies the observer that the provider has finished sending push-based notifications.
void OnCompleted();
}

调用约定:调用0个或多个OnNext(T)方法之后再选择性的调用一次OnError(Exception)或者OnCompleted()。这三个方法都未必会被调用。

  • IObserver<T>:reader 读取者,consumer 消费者
  • IObservable<T>:writer 写入者,publisher 发布者
  • Subject<T>:同时实现了IObservable<T>和IObserver<T>。
  • ReplaySubject<T>:带缓存的Subject<T>。
  • BehaviorSubject<T>:只记得最后一次发布,带缺省值。
  • AsyncSubject<T>:只记得最后一次发布,只在结束时发布。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值