在项目反应器中处理数据的最佳方法是什么?
使用平面地图:
public Mono<User> flat() {
return this.repository.findByName("Jeff")
.flatMap(
user -> {
user.setInfo(new UserInfo("Palo Alto/CA", "Safari", "h1alexbel/transformed"));
return Mono.just(user);
}
);
}
handle:
public Mono<User> handle() {
return this.repository.findByName("Jeff")
.handle(
(user, sink) ->
user.setInfo(
new UserInfo("Palo Alto/CA", "Safari", "h1alexbel/transformed")
)
);
}
或者是其他东西?
据我了解,handle
有助于将 2 个操作组合在一起:flatMap
and filter
.
最接近的模拟handle
is a map
(not flatMap
)。您可以将其视为以下内容的组合map
& filter
。相比之下flatMap
both handle
and map
是同步函数。
map
- 通过应用同步函数来转换发出的项目。它提供 1:1 映射和every应映射项目。跳过项目的唯一方法是抛出异常,然后立即使用处理错误信号onErrorResume
.
handle
- 更灵活,提供0或1映射。可以通过不发出信号来跳过项目sink.next()
.
在您的情况下,没有理由将用户包装到Mono
并使用flatMap
. Use map
因为映射是1:1。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)