弹簧反应器:单.zip空单晶时失效编辑
2022-09-02 01:01:03
我正在使用Spring Reactor 3.1.0.M3,并且有一个用例,我需要合并来自多个来源的Mono。我发现,如果其中一个Monos是空的Mono,zip会失败而不会出错。
例:
Mono<String> m1 = Mono.just("A");
Mono<String> m2 = Mono.just("B");
Mono<String> m3 = Mono.empty();
Mono<String> combined = Mono.zip(strings -> {
StringBuffer sb = new StringBuffer();
for (Object string : strings) {
sb.append((String) string);
}
return sb.toString();
}, m1, m2, m3);
System.out.println("Combined " + combined.block());
添加 m3 时,在响应为 null 时跳过组合器。当我删除m3时,它一切都按预期工作,并返回“AB”。有没有办法通过检测空的Mono来处理这个问题?另外,有没有办法让组合器方法知道对象的类型,而不必强制转换?