package com.test;
import java.time.Duration;
import java.util.Arrays;
import lombok.extern.slf4j.Slf4j;
import org.junit.Test;
import reactor.core.publisher.Flux;
/**
* @author: ffzs
* @Date: 2020/8/7 下午8:18
*/
@Slf4j
public class FlatMapTest {
//->a->f->b->f->c->z->d->s
@Test
public void flatMap () throws InterruptedException {
Flux.just("abcd", "ffzs")
.flatMap(i -> Flux.fromArray(i.split("")).delayElements(Duration.ofMillis(10)))
.subscribe(i -> System.out.print("->"+i));
Thread.sleep(100);
}
//->a->b->c->d->f->f->z->s
@Test
public void flatMapSequential () throws InterruptedException {
Flux.just("abcd", "ffzs")
.flatMapSequential(i -> Flux.fromArray(i.split("")).delayElements(Duration.ofMillis(10)))
.subscribe(i -> System.out.print("->"+i));
Thread.sleep(1000);
}
/* @Test
public void testConcurrencyAndPrefetch() {
int concurrency = 3;
int prefetch = 6;
Flux.range(1, 1)
//.log()
.flatMap(i -> Flux.just(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
.log()
,
concurrency, prefetch)
.subscribe(i -> System.out.print("->"+i));
}*/
//->a->b->c->d->f->f->z->s
@Test
public void flatMapIterable () {
Flux.just("abcd", "ffzs")
.flatMapIterable(i -> Arrays.asList(i.split("")))
.subscribe(i -> System.out.print("->"+i));
}
//->a->b->c->d->f->f->z->s
@Test
public void concatMap () throws InterruptedException {
Flux.just("abcd", "ffzs")
.concatMap(i -> Flux.fromArray(i.split("")).delayElements(Duration.ofMillis(10)))
.subscribe(i -> System.out.print("->"+i));
Thread.sleep(110);
}
//->a->b->c->d->f->f->z->s
@Test
public void concatMapIterable () {
Flux.just("abcd", "ffzs")
.concatMapIterable(i -> Arrays.asList(i.split("")))
.subscribe(i -> System.out.print("->"+i));
}
}