【问题标题】:How to call both subscribe and blockLast on Flux?如何在 Flux 上同时调用 subscribe 和 blockLast?
【发布时间】:2018-09-15 11:28:58
【问题描述】:

我一直在试验 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() 方法可以进行阻塞。但我不能同时使用 subscribe 和 blockLast,因为它们不返回 Flux

有没有优雅的方法来做到这一点?

【问题讨论】:

    标签: java project-reactor reactive-streams


    【解决方案1】:

    所有块方法都代表您进行订阅。您可以将您在 subscribe lambdas 中放入的代码移动到等效的 doOn* 方法中

    【讨论】:

      猜你喜欢
      • 2019-11-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-21
      • 1970-01-01
      • 1970-01-01
      • 2016-01-04
      • 1970-01-01
      相关资源
      最近更新 更多