Java 不急不懒
Java 不急不懒,java,reactive-programming,Java,Reactive Programming,Publisher生成的值可以分为惰性和惰性,如Mono。just和Flux。fromIterable是惰性的,而http操作是惰性的,因为它们仅在调用block或subscirbe时才会发出值。但我碰巧发现,基于这种划分,Flux.interval不属于以下任何一种: @Test public void interval() throws InterruptedException { Flux<Long> delay = Flux.interval(Duration.ofS
Publisher
生成的值可以分为惰性和惰性,如Mono。just
和Flux。fromIterable
是惰性的,而http操作是惰性的,因为它们仅在调用block
或subscirbe
时才会发出值。但我碰巧发现,基于这种划分,Flux.interval
不属于以下任何一种:
@Test
public void interval() throws InterruptedException {
Flux<Long> delay = Flux.interval(Duration.ofSeconds(5)).log(); // t0
TimeUnit.SECONDS.sleep(2); // t0+2
Flux<Long> longFlux = Flux.just(0, 0, 0).zipWith(delay, (a, b) -> a + b).log(); // t0+2+5
StepVerifier.create(longFlux).expectNext(0l,1l,2l).verifyComplete();
}
@测试
public void interval()引发InterruptedException{
通量延迟=通量间隔(持续时间秒(5)).log();//t0
时间单位。秒。睡眠(2);//t0+2
通量longFlux=Flux.just(0,0,0).zipWith(delay,(a,b)->a+b.log();//t0+2+5
StepVerifier.create(longFlux).expectNext(0l,1l,2l).verifyComplete();
}
如果它是渴望的,它应该是t0+5;如果它是懒惰的,它应该等待调用subscribe
或block