我们有一个 vertx verticle,它接收一个 id 并使用它来查看数据库中是否存在具有该 id 的实体。它包含以下逻辑:
if (itemFound) {
e.onNext(item_which_was_found)
}
else {
e.onNext(null);
}
另一个 Verticle 有一个 Observable,它处理一个 id 的列表。它用于rxSend
将列表中的每个 id 传递给第一个 Verticle 以进行数据库查找:
Observable<Object> observable = ...
observable.flatMapSingle(id -> {
return rxSend(VERTICLE_1_ADDRESS, id);
})
.flatMapSingle ( i ->
{
// Logic dependent on if item was found
)
.subscribe();
有了上面,很容易处理在数据库中找到与 id 关联的实体的情况,因为第一个 vertcle in onNext()
,返回实体。问题是针对第二种情况,当没有实体存在并且第一个 verticle 返回时onNext(null)
。在这种情况下,如何在第二种情况下检索flatMapSingle
当前正在处理的 observable 中的项目(即id
没有关联的数据库实体)?或者有没有更好的方法来构建代码?
谢谢