首先,这是我的代码:public static void main(String[] args) { List<String> l1 = Arrays.asList("737", "747"); Flux<String> f1 = Flux.fromIterable(l1); List<String> l2 = Arrays.asList("757", "777"); Flux<String> f2 = Flux.fromIterable(l1); f1.mergeWith(f2) .doOnNext(a -> System.out.println(a)) .next() .subscribe(a -> System.out.println(a));}这是我期望的输出:737747757777737正如文档next()所说,它采用第一个元素,从中创建一个元素,Mono然后取消订阅。我得到的输出是:737737
1 回答

慕容708150
TA贡献1831条经验 获得超4个赞
正如你所说,next()
需要通量的第一个元素创建一个 Mono。Mono 是 0 或 1 值。所以订阅时你只会收到原始 Flux 的第一个值。
看看大理石:
查看完整值是如何在第一个值之后发出的。
因此,如果我们将其应用于您的代码,我们有
737 -> 747 -> 757 -> 777 |
onNext
print 737
next()
737 -> |
subscribe()
print 737
添加回答
举报
0/150
提交
取消