728x90
반응형
1. ZipWith
public final <T2> Flux<Tuple2<T,T2>> zipWith(Publisher<? extends T2> source2)
- 두개의 소스를 결합하는 함수이다.
- 다이어 그램을 보면 두개의 스트림을 하나로 합쳐주는 역할을 한다.
- 하지만 E는 결과 스트림에는 없는게 보인다.
- 둘중 하나가 null 이면 결과 스트림으로 방출되지 않는다.
Flux<Long> userIds = Flux.just(1L,2L,3L);
Mono<List<Member>> listMono = userIds.flatMap(
i -> {
Mono<Member> memberMono = Mono.fromCallable(() -> memberRepository.findUser(i))
.subscribeOn(Schedulers.fromExecutor(customExecutor));
Mono<Integer> integerMono = Mono.fromCallable(() -> memberRepository.findRewardByGrade(i))
.subscribeOn(Schedulers.fromExecutor(customExecutor));
return memberMono.zipWith(integerMono, (member, reward) -> {
member.setReward(reward);
return member;
});
}
)
.collectList();
728x90
반응형
'Reactive Programing' 카테고리의 다른 글
[Reactive Programming] 속도비교 (1) | 2024.11.02 |
---|---|
[Reactive Programming] Flux, Mono 개념 (0) | 2024.10.14 |
[Reactive Programming] 개념 (0) | 2024.10.06 |
댓글