gpt4 book ai didi

java - RxJava等待单个事件,RxJava

转载 作者:行者123 更新时间:2023-12-02 09:35:45 25 4
gpt4 key购买 nike

如何等待一个带有超时的可观察值出现?

我正在寻找类似的东西:

Observable<Acknowledgement> acknowledgementObservable;
port.send(new Message());
Optional<Acknowledgement> ack = acknowledgementObservable.getFirst(100, TimeUnit.MILLISECONDS);

最佳答案

首先,将 Observable 转换为 CompletableFuture,如 Converting between Completablefuture and Observable 中所述。 :

Observable<Acknowledgement> acknowledgementObservable;
port.send(new Message());
CompletableFuture<T> future = new CompletableFuture<>();
acknowledgementObservable
.doOnError(future::completeExceptionally)
.single()
.forEach(future::complete);

然后,使用超时等待事件:

Acknowledgement ack = future.get(100, TimeUnit.MILLISECONDS);

如果发生超时,它会抛出TimeoutException

关于java - RxJava等待单个事件,RxJava,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57523882/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com