如何在 Flux 上同时调用 subscribe 和 blockLast?
How to call both subscribe and blockLast on Flux?
我一直在试验 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,因为它们不 return Flux
。
有没有优雅的方法来做到这一点?
所有块方法都代表您进行订阅。您可以将本应放入 subscribe lambda 中的代码移动到等效的 doOn* 方法中
我一直在试验 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,因为它们不 return Flux
。
有没有优雅的方法来做到这一点?
所有块方法都代表您进行订阅。您可以将本应放入 subscribe lambda 中的代码移动到等效的 doOn* 方法中