Reactor3 功能介绍二十四: combineLatest操作

该博客探讨了Reactor库中的`combineLatest`操作符,它用于合并多个数据源的最新值。当任何一个源发布新元素时,这个操作符会组合当前所有源的最新元素并创建一个新的输出。在提供的示例中,两个定时发布字符串的Flux被合并,每当任一Flux发出新值,都会打印组合后的结果。这个操作在实时同步多个数据源的场景中非常有用。
摘要由CSDN通过智能技术生成

combineLatest操作会把所有源中最新产生的元素合并成一个新元素下发。只要其中任何一个源中产生了新元素,合并操作就会执行一次,然后下发新产生的元素。如下图所示:

 

Demo:

		Flux.combineLatest(
		         Flux.interval(Duration.ofMillis(50), Duration.ofMillis(100)).map(x -> "a"+x).take(5),
		         Flux.interval(Duration.ZERO, Duration.ofMillis(100)).map(x -> "b"+x).take(5),
		         (s,f) -> s + " : " + f
		).subscribe(System.out::println);
		Thread.sleep(1000*2l);

执行结果:

a0 : b0
a0 : b1
a1 : b1
a1 : b2
a2 : b2
a2 : b3
a3 : b3
a3 : b4
a4 : b4

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值