- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在 RxJava 2 和 Reactor 中有一个 switchIfEmpty
like 方法在当前流中没有元素时切换到新流。
但是当我开始使用Minuty ,当我将我的 Quarkus 示例转换为使用 Reactive 功能时,我找不到替代方案。
目前我的解决方案是:在我的 PostRepository
,我使用异常来指示没有找到帖子。
public Uni<Post> findById(UUID id) {
return this.client
.preparedQuery("SELECT * FROM posts WHERE id=$1", Tuple.of(id))
.map(RowSet::iterator)
.flatMap(it -> it.hasNext() ? Uni.createFrom().item(rowToPost(it.next())) : Uni.createFrom().failure(()-> new PostNotFoundException()));
}
并在 PostResource
中捕获它.
@Path("{id}")
@GET
@Produces(MediaType.APPLICATION_JSON)
public Uni<Response> getPostById(@PathParam("id") final String id) {
return this.posts.findById(UUID.fromString(id))
.map(data -> ok(data).build())
.onFailure(PostNotFoundException.class).recoverWithItem(status(Status.NOT_FOUND).build());
}
如何返回 Uni
表示 PostRepository
中的 0 或 1 个元素,并使用 switchIfEmpty
喜欢 PostResource
中的方法为流程构建替代路径?
最佳答案
Uni
不能是空,因为它总是包含一个项目(可能是 null
)。
因此,switchIfEmpty
的等效项是 uni.onItem().ifNull().switchTo(() -> ...)
关于reactive-programming - Smallrye Mutiny 中的 switchIfEmpty 替代方案是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61140873/
即使我的流不为空,后备流也总是会被创建?这样做的意图是什么?这是非常不惯用的。 另一方面,.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 具
我是一名优秀的程序员,十分优秀!