Gen*_*ode 1 java project-reactor
我刚开始接触反应式编程。在参加了一些关于 reactor 和 spring 5.0 的演讲后,我想自己尝试这种编程模型。
我有一个应用程序,它使用 WebClient 从不同的 API 构建两个 Flux 对象。我想将这 2 个对象组合成一个并将其返回给用户。
代码示例如下所示:
public class User {
private String username;
//getters and setters
}
public class Address {
private String street;
//getters and setters;
}
public class CompleteUser {
private String username;
private String address;
//getters and setters
}
Run Code Online (Sandbox Code Playgroud)
现在在我的处理程序方法中:
final Flux<User> = WebClient.create()...;
final Flux<Address> = WebClient.create()...;
final Flux<CompleteUser> = //somehow compose this two types into one
Run Code Online (Sandbox Code Playgroud)
我应该使用反应堆 API 中的什么方法来实现这一点?我找到了一些组合对象的方法,例如 combineLatest 但是在这种情况下,我想将第一个 Flux 的第一个项目与第二个 Flux 的第一个项目组合起来,等等。
Flux.zip静态方法正是您正在寻找的。对于 2 个来源的组合,您可以提供一个BiFunction来产生结果。
Flux<CompleteUser> complete = Flux.zip(fluxUser, fluxAddress, (u, a) -> new CompleteUser(u, a));
//if the ctor perfectly matches, you can also use CompleteUser::new
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2262 次 |
| 最近记录: |