【发布时间】:2020-10-09 07:39:25
【问题描述】:
我想了解为什么在下面的代码中调用超时处理程序。因为我已经配置了 100 秒的超时时间,所以我没想到会在 1 秒后发出元素时调用处理程序。
public static void main(String[] args) throws InterruptedException {
Mono<Integer> integerMono = Mono.just(1).delayElement(Duration.ofSeconds(1));
integerMono
.timeout(Duration.ofSeconds(100),handler())
.subscribe(integer -> System.out.println(integer));
Thread.sleep(10000);
}
private static Mono<? extends Integer> handler() {
System.out.println("handler invoked");
return Mono.just(10);
}
下面是输出:
handler invoked
1
有人可以解释一下,为什么会这样,以及我们如何实现预期的行为?
【问题讨论】:
标签: java project-reactor