我有以下工作代碼:加入多個回調執行在CompletableFuture
DiscoveryCallback callback = new DiscoveryCallback();
Manager.discover(someparam, callback);
我想這個調用包裝成一個CompletableFuture有RX-ISH API與其他異步操作組成。
Manager.discover()是一個第三方庫,實際上是一個用於本機功能結合的方法,並且它多次執行回調,在不同的線程。
我DiscoveryCallback實現以下接口:
interface onFoundListerner {
onFound(List<Result> results)
onError(Throwable error)
}
我試圖注入的CompletableFuture<List<Result>>
一個實例爲DiscoveryCallback,然後調用完成方法。對於一個回調執行它可以正常工作,而其他回調則被忽略。
我怎樣才能加入這個多次執行的結果,使我的包裝返回單個CompletableFuture?
也許一個'Iterator'或'Stream'將比'CompletableFuture's更合適。 – acelent
這樣我的包裝將被阻止。我需要客戶端上的反應式API,但我不能依賴RxJava。順便說一句,Observables一切都按預期工作。 – thiagogcm