Spring reactor doOnNext,它被执行了吗?
Spring reactor doOnNext, is it getting executed?
我在玩reactor
public @NotNull Mono<ServerResponse> findXXXXSse(final ServerRequest request) {
return request.bodyToMono(XXXXSearch.class)
.doOnNext(this::validate)
.flatMap(this::findXXXXSse)
.switchIfEmpty(this.emptyBodyException());
}
Adn 我想知道“.doOnNext(this::validate)”的使用是否正确。从我的角度来看,我不确定在 findXXXXSse 之前调用了验证?
我错了吗?
Flux.doOnNext
方法应始终用作副作用。
文档说“添加行为(副作用)在 Flux 发出项目时触发。”参考:https://projectreactor.io/docs/core/release/api/reactor/core/publisher/Flux.html#doOnNext-java.util.function.Consumer-
我假设您只想在验证成功时恢复您的链,即,只有在验证成功时才应调用 .flatMap(this::findXXXXSse)
。
您可以使用 filter(this::validate)
并将 validate(XXXXSearch.class)
方法添加到 return true/false。
我在玩reactor
public @NotNull Mono<ServerResponse> findXXXXSse(final ServerRequest request) {
return request.bodyToMono(XXXXSearch.class)
.doOnNext(this::validate)
.flatMap(this::findXXXXSse)
.switchIfEmpty(this.emptyBodyException());
}
Adn 我想知道“.doOnNext(this::validate)”的使用是否正确。从我的角度来看,我不确定在 findXXXXSse 之前调用了验证?
我错了吗?
Flux.doOnNext
方法应始终用作副作用。
文档说“添加行为(副作用)在 Flux 发出项目时触发。”参考:https://projectreactor.io/docs/core/release/api/reactor/core/publisher/Flux.html#doOnNext-java.util.function.Consumer-
我假设您只想在验证成功时恢复您的链,即,只有在验证成功时才应调用 .flatMap(this::findXXXXSse)
。
您可以使用 filter(this::validate)
并将 validate(XXXXSearch.class)
方法添加到 return true/false。