我已经实现了一个虚拟的反应存储库,但我正在为update方法苦苦挣扎:
@Override
public Mono<User> updateUser(int id, Mono<User> updateMono) {
return //todo with getUser
}
@Override
public Mono<User> getUser(int id) {
return Mono.justOrEmpty(this.users.get(id));
}
一方面,我有传入的发布服务器mono
,另一方面,在mono.justorempty(This.users.get(id))
期间,我有另一个发布服务器。
如何将其组合在一起,进行更新,并仅回馈一个发布者?
我想到的唯一一件事是:
@Override
public Mono<User> updateUser(int id, Mono<User> updateMono) {
return getUser(id).doOnNext(user -> {
updateMono.subscribe(update -> {
users.put(id, new User(id, update.getName(), update.getAge()));
System.out.format("Updated user with id %d to %s%n", id, update);
});
});
}
是正确的吗?
请参阅关于查找正确运算符的参考指南
特别要注意的是,对于mono
,您有和
、when
、then
(注意,最后一个将在3.1.0中变为flatmap
,而flatmap将变为FlatMapMany
)
doonnext
更多用于日志记录或统计数据收集等辅助操作。Subscribe内部订阅是另一种不良形式;通常,您需要flatmap
或类似的文件。
假设我有两个外部服务。假设我们有一个item,serviceA返回item,serviceB返回item。 我想要得到的是形式的处理程序,其中和是同一查询项的对应对象。 是迄今为止我找到的最接近的东西,但它不是我想要的东西,因为订单没有promise。我在寻找像CompletableFuture::allOf这样的东西 我总是可以通过使这两个调用同步来作弊,但这会让反应式编程失去所有乐趣。或者,我
问题内容: 如何使用将一个附加到另一个? 我正在使用图书馆发送到。 字典1 字典2 如何将两个字典结合在一起,制作一个新字典,如下所示? 我已经尝试过,但是出现了编译错误: 二进制运算符’+ =’不能应用于两个’[String:AnyObject]’操作数 问题答案: 请参阅很棒的Dollar&Cent项目 https://github.com/ankurp/Cent/blob/master/So
如何使用Swift将一本词典附加到另一本词典? 我正在使用库将发送到。 词典1 词典2 如何组合这两个词典以生成一个新词典,如下所示? 我尝试了dict1=dict2,但出现了编译错误: 二进制运算符“=”不能应用于两个“[字符串:AnyObject]”操作数
假设我有如下两个通量: 现在我想把这些通量组合成一个通量或者两个通量的元组,在一个通量中包含两个通量元素。 我使用zipwith方法尝试了以下操作: 但是这给出了一个编译时错误: 我怎样才能做到这一点?请建议。
意思就是想要两个 tab页同时能获取到一个状态的更改。比如在 A 页面改的状态,在 B 页面也可以同时获取到
问题内容: 我想在hibernate中实现类似于触发器的功能。 我需要的是当表中的列达到特定值时,应在另一张表中插入一行,或者应更新某些其他表。 如何在hibernate状态下实现呢? 问题答案: 这在第14章中进行了描述。 例如,您可以拦截更新后事件。 但是,将事件系统用于 业务 运营可能不是最好的主意(它们最适合用于基础结构问题)。您应该为此使用更高级别的层。