在项目React器中处理数据的最佳方式是什么?
使用flatMap:
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);
}
);
}
手柄:
public Mono<User> handle() {
return this.repository.findByName("Jeff")
.handle(
(user, sink) ->
user.setInfo(
new UserInfo("Palo Alto/CA", "Safari", "h1alexbel/transformed")
)
);
}
还是别的什么
据我所知,handle
有助于将两个操作结合在一起:flatMap
和filter
。
1条答案
按热度按时间sbdsn5lh1#
最接近
handle
的是map
(不是flatMap
)。您可以将其视为map
和filter
的组合。与flatMap
相比,handle
和map
都是同步函数。map
-通过应用同步函数转换发出的项。它提供1:1Map,并且每个项都应Map。跳过项的唯一方法是引发异常,然后立即使用onErrorResume
处理错误信号。handle
-更灵活,提供0或1Map。使用sink.next()
可以通过不发射信号来跳过项目。在您的情况下,没有理由将用户 Package 到
Mono
中并使用flatMap
。使用map
是因为Map是1:1。