如何在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 次瀏覽

啟動您的職業生涯

完成課程獲得認證

開始學習
廣告