Как позвонить и подписаться и blockLast на Flux? - PullRequest
0 голосов
/ 15 сентября 2018

Я экспериментировал с Project Reactor и реактивными потоками в целом.Я столкнулся с проблемой при использовании subscribeOn для запуска потока в другом потоке.Имея мой код в основном, мне нужен блок основного потока, пока поток не завершится, поэтому я сделал что-то вроде этого:

        Flux.just(1, 2, 3, 4)
                .log()
                .subscribeOn(Schedulers.parallel())
                .subscribe((i) -> {
                   // some operation 
                });

        try {
            Thread.sleep(20000L);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }

        System.out.println("Finished");

Затем я заметил, что есть методы blockLast(), которые делают блокировку.Но я не мог использовать и подписку, и blockLast, так как они не возвращают Flux.

Есть ли изящный способ сделать это?

1 Ответ

0 голосов
/ 16 сентября 2018

Все методы блока подписываются от вашего имени.Вы можете переместить код, который вы поместили бы в лямбды подписки, в эквивалентные методы doOn *

...