这有点过分简化,但是从概念上讲,Reactor的来源要么是懒惰的,要么是渴望的。诸如HTTP请求之类的更高级的请求将被延迟评估。另一方面,最简单的人喜欢
Mono.just或
Flux.fromIterable渴望。
这样,我的意思是调用
Mono.just(System.currentTimeMillis())将立即调用该
currentTimeMillis()方法并捕获结果。所述结果仅在被订阅后才
发出
Mono。多次订阅也不会更改该值:
Mono<Long> clock = Mono.just(System.currentTimeMillis());//time == t0Thread.sleep(10_000);//time == t10clock.block(); //we use block for demonstration purposes, returns t0Thread.sleep(7_000);//time == t17clock.block(); //we re-subscribe to clock, still returns t0
该
defer运营商有没有使这个源懒惰,重新评估拉姆达的含量 每有一个新的用户时间 :
Mono<Long> clock = Mono.defer(() -> Mono.just(System.currentTimeMillis()));//time == t0Thread.sleep(10_000);//time == t10clock.block(); //invoked currentTimeMillis() here and returns t10Thread.sleep(7_000);//time == t17clock.block(); //invoke currentTimeMillis() once again here and returns t17
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)