我能以某种方式简化或改进这段代码吗?基本问题是我需要构建一个包含来自异步调用的多个值的 DTO。单声道和单声道
// getMovie returns Mono<Movie>
return getMovie(movieId)
.flatMap(movie -> Mono.zip(
getReleaseDate(movieId), // external call return Mono<Instant>
getDirector(movie) // external call returns Mono<Director>
).map(it ->
new MovieData(
movieId,
getMovieName(movie), // private function
it.getT1(),
it.getT2()
)));
我试图用 zipWith 改进它,但它使它变得更糟。