merge는 Flux.merge(flux1, flux2) flux1, flux2 중 제공받는 순서대로 결합
concat Flux.concat(flux1, flux2) 인 경우 flux1, flux2 flux1이 완료될 때까지 기다리고 flux1이 완료된 이후에 flux2를 subscribe
concat 는 여러개의 mono를 합쳐서 flux로 만들 수 있다.
Flux.concat(mono1, mono2)
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);
}
}