簡體   English   中英

如何將 Future 轉換為 Uni?

[英]How to convert Future to Uni?

我有一個返回Future實例的 Java API。 我需要將其轉換為Uni 從兵變文檔中,我看到可以將CompletionStage轉換為Uni ,但我找不到如何將標准Future轉換為Uni

問:如何將java.util.concurrent.Future轉換為Uni

我知道我可以扭曲它對Uniget()調用,但它會阻塞,不是嗎?

Future的問題在於它是一個阻塞的 API 並且與CompletionStage不同,沒有辦法鏈接一個 stream 操作。

但是,Mutiny 有辦法處理阻塞 API

Future future = ...;
Uni<Object> uni = Uni.createFrom()
    .item( () -> future.get() )
    .runSubscriptionOn( Infrastructure.getDefaultWorkerPool() );

更新:

我的答案適用於所有阻塞代碼,但正確答案在評論中:

Uni.createFrom().future(future);

或者

Uni.createFrom().future(() -> future))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM