java 如何以非阻塞方式从Mono中提取布尔值< Object>

wkyowqbh  于 2023-02-02  发布在  Java
关注(0)|答案(1)|浏览(295)

我有一个涉及React性非React性对象的确认方法。

private boolean filterByName(String student, Mono<String> teacher) {
      if (student.startsWith("A")) return true; 
       else if(teacher.startsWith("B")) return false; //however teacher is Mono<String> 
}

**问题:**如何在成功检查Mono<String>后不使用blocksubscribe返回boolean

调用filterByName的方法在另一个reactive方法中使用:

public Mono<Student> validateStudent(Student student) {
    return Mono.just(student)
        .filter(this::filterByName)
        .switchIfEmpty(Mono.error(new Exception("Validation Failed")));
                        
  }

请帮助我找到成功返回boolean而不阻塞任何Mono的方法
我是新的React式编程。任何帮助是赞赏。谢谢提前。

tjvv9vkg

tjvv9vkg1#

你可以做这样的事

Mono<Boolean> flag = // initialize this;

  flag.flatMap(valie -> {
     if (Boolean.FALSE.equals(value)) {
         return false;
     } else {
        return true;
     }

  })

相关问题