首页 > 解决方案 > 反应式编程 - 在完成时调用另一个 Mono #SpringWebFlux

问题描述

我正在努力实现以下目标:

我有两种方法 - 1. public Mono method1 2. public Mono method2

public Mono<Boolean> test(){
 method1.map(status -> {
  if(status.isActive){
    throw Exception;
  } 
 }).switchIfEmpty(method2).thenReturn(true);
}

你能帮忙吗:

  1. 问题是,只有在使用 method1.subscribe() 时,控制权才会转到 method1。我无法根据从 method1 返回的状态字段返回值或抛出异常。
  2. 当method1.map()或method1.filter()时,控制甚至没有转到method1
  3. 当 method1 返回 Mono.empty() 时,控制不会切换到 switchIfEmpty(method2)

标签: spring-webfluxproject-reactorreactive

解决方案


您的测试方法只返回一个发布者。除非消费者订阅它,否则您将无法使用它实现任何目标。这可能会提示您为什么事情可能无法按预期为您工作。

此外,您甚至没有在问题中澄清您是否正在调用/订阅它。


推荐阅读