[Reactor Practice] Merge

kimchj·2024년 3월 5일

Reactor

목록 보기
5/11

1. Flux.merge(Publisher<? extends I>... sources)

merge는 Flux.merge(flux1, flux2) flux1, flux2 중 제공받는 순서대로 결합

2. Flux.concat(Publisher<? extends T>... sources)

concat Flux.concat(flux1, flux2) 인 경우 flux1, flux2 flux1이 완료될 때까지 기다리고 flux1이 완료된 이후에 flux2를 subscribe


concat 는 여러개의 mono를 합쳐서 flux로 만들 수 있다.
Flux.concat(mono1, mono2)

Merge Reactor Practice

package io.pivotal.literx;

//generic imports to help with simpler IDEs (ie tech.io)
import java.util.*;
import java.util.function.*;
import java.time.*;

import io.pivotal.literx.domain.User;
import reactor.core.publisher.Flux;
import reactor.core.publisher.Mono;

/**
 * Learn how to merge flux.
 *
 * @author Sebastien Deleuze
 */
public class Part05Merge {

//========================================================================================

	// TODO Merge flux1 and flux2 values with interleave
	Flux<User> mergeFluxWithInterleave(Flux<User> flux1, Flux<User> flux2) {
		return Flux.merge(flux1, flux2);
	}

//========================================================================================

	// TODO Merge flux1 and flux2 values with no interleave (flux1 values and then flux2 values)
	Flux<User> mergeFluxWithNoInterleave(Flux<User> flux1, Flux<User> flux2) {
		return Flux.concat(flux1, flux2);
	}

//========================================================================================

	// TODO Create a Flux containing the value of mono1 then the value of mono2
	Flux<User> createFluxFromMultipleMono(Mono<User> mono1, Mono<User> mono2) {
		return Flux.concat(mono1, mono2);
	}

}
profile
ㅎㅇ

0개의 댓글