如何在Java 9中执行Flow API?


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

以下是Flow API的关键接口

1) Flow.Publisher: 它为订阅者生成要使用的项目,并且它只包含一个方法:subscribe(Subscriber),其用途应该很明显。

语法

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

2) Flow.Subscriber: 它订阅发布者(通常只有一个)以接收项目(通过方法onNext(T))、错误消息(onError(Throwable))或表示不再期望项目的信号(onComplete())。在这些事情发生之前,发布者会调用onSubscription(Subscription)方法。

语法

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

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

语法

void request(long n)
void cancel()

Flow API的执行步骤


  • 首先,我们需要创建一个Publisher和一个Subscriber
  • 使用Publisher::subscribe订阅订阅者。
  • 发布者创建一个Subscription并使用它调用Subscriber::onSubscription,以便订阅者可以存储订阅。
  • 在某些时候,订阅者调用Subscription::request来请求一定数量的项目。
  • 发布者开始通过调用Subscriber::onNext将项目传递给订阅者。它永远不会发布超过请求数量的项目。
  • 发布者可能会在某些时候遇到问题,并分别调用Subscriber::onCompleteSubscriber::onError
  • 订阅者可能会继续不时请求更多项目,或者通过调用Subscription::cancel来断开连接。

更新于:2020年4月14日

244 次浏览

启动您的职业生涯

完成课程获得认证

开始学习
广告