即使我的流不为空,后备流也总是会被创建?这样做的目的是什么?这极不符合惯用法。
另一方面,
请问有人能解释一下为什么
下面是代码:
另一方面,
onErrorResume
会被惰性地评估。请问有人能解释一下为什么
switchIsEmpty
要急切地评估吗?下面是代码:
public static void main(String[] args) {
Mono<Integer> m = Mono.just(1);
m.flatMap(a -> Mono.delay(Duration.ofMillis(5000)).flatMap(p -> Mono.empty()))
.switchIfEmpty(getFallback())
.doOnNext(a -> System.out.println(a))
.block();
}
private static Mono<Integer> getFallback() {
System.out.println("In Here");
return Mono.just(5);
}
输出结果为:
In Here (printed immediately)
5 (after 5s)
switchIfEmpty
要使用的流之前进行初始化的错误。请提供你遇到问题的代码。 - akarnokdmain
中只写getFallback();
而没有使用switchIfEmpty
和其他结构,会发生什么?为什么? - akarnokd