- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
public Mono<ServerResponse> getMessage(ServerRequest request) {
//this call returns Mono<ApiClientResponse>
return apiClient.hystrixWrappedGetMessages(request.headers().asHttpHeaders(), request.queryParams())
.switchIfEmpty(/* Here */)
}
请原谅代码略有不完整,遇到这个问题时我正在重构它。要点是它在 switchIfEmpty()
中说/* Here */的地方调用,编译器强制类型为 Mono<ApiClientResponse>
,但是当hystrixWrappedGetMessages()
返回 Mono.empty()
我想通过返回 204 Mono<ServerResponse>
来处理这个问题例如,否则我想返回 200。我该如何实现?
理想情况下,我可以在 map 调用中检查它是否为 Mono.empty(),但如果它是一个空的 Mono,它似乎不会进入 map。考虑过使用可选值,但它们似乎不能很好地与 Monos 配合使用。
最佳答案
如果响应良好,您应该能够 flatMap
,如果返回 Mono#empty
,则 flatMap
将被忽略。
public Mono<ServerResponse> getMessage(ServerRequest request) {
return apiClient.hystrixWrappedGetMessages(request.headers().asHttpHeaders(), request.queryParams())
.flatMap(response -> {
// Do your processing here
return ServerResponse.ok().body( .... );
}.switchIfEmpty(ServerResponse.noContent());
}
关于java - Spring WebFlux switchIfEmpty 返回不同的类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65360312/
即使我的流不为空,后备流也总是会被创建?这样做的意图是什么?这是非常不惯用的。 另一方面,.onErrorResume 是延迟计算的。 有人可以向我解释一下为什么 .switchIsEmpty 会被急
我有一个像这样的简单存储库实现。 @Repository public interface PolicyRepository extends ReactiveMongoRepository {
我有一些方法 Maybe getLocalFoo() Single> getFooFromInternet() 并且想要检查本地项目,如果它是空的,那么例如从网络中获取该项目。 storage
如果源 Maybe 为空,我使用 Maybe switchIfEmpty 方法提供替代结果。但是,我希望仅在源为空时才执行备用源,而在源不为空时不执行它。 在下面的示例中,如果源返回非空 Maybe,
我有两个方法。 主要方法: @PostMapping("/login") public Mono> loginUser(@RequestBody final LoginUser loginUser)
这里的逻辑是,如果数据库中的评级为空,那么我想从 API 中获取它们。我有以下代码: Observable.from(settingsRatingRepository.getRatingsFromDB
public Mono getMessage(ServerRequest request) { //this call returns Mono return apiClient.hy
我有一个场景,我将从 DB 获取实体列表使用 repository.getAllByIds(ids) 这将返回 Flux 如果 Flux 为空,那么我需要调用 handleAllEntitiesNot
public Mono getMessage(ServerRequest request) { //this call returns Mono return apiClient.hy
RxJava 库方法switchIfEmpty里面的指令,总是被执行。然后将评估可观察对象是否为空,并将返回源或替代项。是否有一种方法只允许传递一个仅在源可观察对象为空时才会执行的可观察对象供应商?
是否有一个运算符可以处理结果/成功,无论 Mono 是否为空。例如: Mono result = sourceMono.flatMap(n -> process(n)).switchIfEmpty(p
是否有一个运算符可以处理结果/成功,无论 Mono 是否为空。例如: Mono result = sourceMono.flatMap(n -> process(n)).switchIfEmpty(p
在 RxJava 2 和 Reactor 中有一个 switchIfEmpty like 方法在当前流中没有元素时切换到新流。 但是当我开始使用Minuty ,当我将我的 Quarkus 示例转换为使
我在试验 RxJava 运算符时遇到了这个问题,但不知道为什么会这样。让我看一个例子,希望问题会很清楚。 我有一个使用 Observable.just 创建的水果 Observable Observa
我正在寻找一种方法来检索替代的 Mono,以防原始 Mono 为空。我找到的最接近的是 Mono.switchIfEmpty,但我的问题是我无法将 lambda 表达式传递给它,因此即使 Mono 具
我是一名优秀的程序员,十分优秀!