웹 개발/WebFlux

[WebFlux] Learn how to create Flux instances 해답 코드 - techio

희랍인 조르바 2019. 10. 21. 00:14

techio reactor Flux 학습 사이트

techio에서 배울 수 있는 Reactor 학습의 success 코드

 

 

동기 방식의 spring mvc 방식 개발만 하다 비동기 방식의 webflux로 개발하려니 개념적인 부분부터 이해가 어렵드아...

 

개인적으로 reactor 메인 레퍼런스 사이트의 Chapter 4까지는 읽어보고 시작하면 좋을 것 같다.

Reactor 3 Main reference site

 

 

operator 참고 사이트

Flux reference site

출처: https://projectreactor.io/docs/core/release/api/reactor/core/publisher/Flux.html

해답 코드

Empty flux

    // TODO Return an empty Flux
    Flux<String> emptyFlux() {   
        return Flux.empty();
    }

 

Flux from values

    // TODO Return a Flux that contains 2 values "foo" and "bar" without using an array or a collection
    Flux<String> fooBarFluxFromValues() {
        return Flux.just("foo", "bar");
    }

 

Create a Flux from a List

    // TODO Create a Flux from a List that contains 2 values "foo" and "bar"
    Flux<String> fooBarFluxFromList() {
        List<String> fooList = new ArrayList<>();
        fooList.add("foo");
        fooList.add("bar");
        return Flux.fromIterable(fooList);
    }

 

Create a Flux that emits an IllegalStateException

    // TODO Create a Flux that emits an IllegalStateException
    Flux<String> errorFlux() {
        return Flux.error(new IllegalStateException());
    }

 

Create a Flux that emits 10 increasing values

    // TODO Create a Flux that emits increasing values from 0 to 9 each 100ms
    Flux<Long> counter() {
        return Flux.interval(Duration.ofMillis(100)).take(10);
    }