簡體   English   中英

作為if語句的結果,我如何在另一個反應流中使用一個反應流

[英]How can I use one reactive stream inside another reactive stream as result of if statement

我必須將一種方法重構為可響應的方法,該方法返回Enum.VALUE。 該方法就像從一個if語句到另一個if過濾器一樣工作。 當某些if語句返回true(在map()方法上)或通過所有元素的路徑時,我使用Pair進行了編碼並制動了鏈。 它可以工作,但是map()if語句內部使用了兩種輔助方法,它們實際上是阻塞的,因此我必須使它們成為非阻塞的。 輔助方法One返回布爾值,並且每次調用該方法時都必須調用它。 這是示例代碼:


public Mono<Enum> method(String param) {
return Mono.just(param)
   .map(
      //filter if-statement
    )
 .map(
      //filter if-statement
    )
 .map(
    pair -> {
       if (auxiliaryMethodOne(param)) {
      //filter if-statement
        }
      }
    )
 .map(
      //filter if-statement
    )
}

private Mono <Boolean> auxiliaryMethodOne(String param) {
    //some logic returns Mono<Boolean>
}

您可以使用Mono#filterWhen

myMono.filterWhen(pair -> auxiliaryMethodOne(param))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM