在Java 9中执行Flow API的步骤是什么?

Java 9中的Flow API对应于Reactive Streams 规范,它是事实上的标准。它包含一组最少的接口,这些接口捕获了异步发布和订阅的核心。

以下是Flow API的关键接口:

1) 流程。发布者:它产生供订阅者使用的项目,并且仅包含方法:subscription(Subscriber),其目的应该很明显。

语法

void subscribe(Flow.Subscriber<? super T> subscriber)

2) 流程。订阅者:它订阅发布者(通常只有一个)来接收项目(通过方法onNext(T)),错误消息(onError(Throwable))或发出不再需要更多项目的信号(onComplete())。在任何这些事情发生之前,发布者都会调用onSubscription(Subscription) 方法。

语法

void onSubscribe(Flow.Subscription subscription)
void onNext(T item)
void onError(Throwable throwable)
void onComplete()

3) 流程。订阅:单个发布者 和单个订阅者之间的连接。订户可以使用它来请求更多项目(request(long))或断开连接(cancel())。

语法

void request(long n)
void cancel()

Flow API的执行步骤:


  • 首先,我们需要创建一个Publisher 和一个Subscriber

  • Publisher::subscribe订阅订阅者

  • 发行商 创建一个订阅 ,并呼吁用户:: onSubscription有了它,所以用户可以存储订阅。

  • 在某个时候,订户调用Subscription :: 请求 以请求多个项目。

  • 发布者通过调用Subscriber::onNext开始将项目交给订阅者。它发布的内容绝不超过所请求的项目数。

  • 发布者有时可能会遇到麻烦,并分别调用Subscriber::onComplete Subscriber::onError

  • 订户可能会继续不时请求更多项目,或者通过调用Subscription::cancel断开连接。