徐州seo网站推广,企业cms源码,东莞直播app软件开发定制,网络推广的定义响应式流的核心接口
核心接口包括#xff1a;PublisherT、SubscriberT、Subscription 和 ProcessoT,R
#xff08;1#xff09;PublisherT
Publisher接口代表数据流的生产者#xff0c;根据收到的请求向Subscriber发布数据。接口定义如…响应式流的核心接口
核心接口包括PublisherT、SubscriberT、Subscription 和 ProcessoT,R
1PublisherT
Publisher接口代表数据流的生产者根据收到的请求向Subscriber发布数据。接口定义如下
public interface PublisherT {void subscribe(Subscriber? super T s);
}2SubscriberT
Subscriber代表数据流的消费者负责订阅并接收Publisher发布的数据。接口定义如下
public interface SubscriberT {void onSubscribe(Subscription s);void onNext(T t);void onError(Throwable t);void onComplete();
}onSubscribe()回调方法当发布者的 subscribe() 方法被调用时就会触发这个回调。而在该方法中有一个参数 Subscription()可以把这个 Subscription 看作是一种用于订阅的上下文对象。Subscription 对象中包含了这次回调中订阅者想要向发布者请求的数据个数。onNext()当订阅关系已经建立那么发布者就可以调用订阅者的 onNext() 方法向订阅者发送一个数据。这个过程是持续不断的直到所发送的数据已经达到 Subscription 对象中所请求的数据个数。onComplete()当所发送的数据已经达到 Subscription 对象中所请求的数据个数触发onComplete() 方法代表这个数据流已经全部发送结束。onError()在发送数据过程中若出现异常就会触发 onError() 方法我们可以通过这个方法捕获到具体的异常信息进行处理而数据流也就自动终止。
3Subscription
Subscription代表一种订阅上下文对象用于管理Publisher和Subscriber之间的订阅关系。Subscription是确保发布者和订阅者针对数据处理速度达成一种动态平衡的基础也是流量控制中实现背压机制的关键。接口定义如下
public interface Subscription {void request(long n);void cancel();
}request()请求发布者发送n个数据项订阅者可以通过不断调用该方法来向发布者请求数据。cance()取消订阅停止接收数据。
4ProcessoT,R
ProcessoT,R接口既可以是Publisher也可以是Subscriber用于对数据流进行处理和转换。接口定义如下
public interface ProcessorT, R extends SubscriberT, PublisherR {
}ProcessoT,R接口方法详见Spring响应式编程之Reactor操作符