从两个 Mono 对象中获取属性并使用 Reactor Java 将它们设置为 属性 到第三个对象
Grab Attributes from two Mono Objects and set them as a property to a third object using Reactor Java
我有两个 Api,return 两个不同的 Mono 对象
Mono<User> user1 = api.service1(...);
Mono<UserV2> user2 = api.service2(...);
我想从这些对象中获取 属性 并将它们设置为另一个对象,例如 SuperUser
SuperUser superUser = new SuperUser();
我想做这样的事情
superUser.setProp1(user1.getProp1());
superUser.setProp2(user2.getProp1());
完成后,我想向 superUser 对象发送一些方法。
压缩两个单声道并从元组创建超级用户
Mono.zip(user1, user2).flatMap(data->{
// get those values as below
data.getT1();
data.getT2();
// set it to superUser
return <your_response_object>;
});
像这样使用Mono#zipWith:
Mono<SuperUser> superUserMono = user1.zipWith(user2)
.map(userTuple -> {
superUser.setProp1(userTuple.getT1().getProp1());
superUser.setProp2(userTuple.getT2().getProp1());
return superUser;
})
这是一种更简洁的方法:)
SuperUser superUser = new SuperUser();
return Mono.zip(user1, user2).flatMap(data -> {
String prop1 = data.getT1().getProp1();
String prop2 = data.getT2().getProp1();
if(prop1 != null)) {
superUser.setProp1(prop1);
}
if(prop2 != null) {
superUser.setProp2(prop2);
}
return superUser;
});
我有两个 Api,return 两个不同的 Mono 对象
Mono<User> user1 = api.service1(...);
Mono<UserV2> user2 = api.service2(...);
我想从这些对象中获取 属性 并将它们设置为另一个对象,例如 SuperUser
SuperUser superUser = new SuperUser();
我想做这样的事情
superUser.setProp1(user1.getProp1());
superUser.setProp2(user2.getProp1());
完成后,我想向 superUser 对象发送一些方法。
压缩两个单声道并从元组创建超级用户
Mono.zip(user1, user2).flatMap(data->{
// get those values as below
data.getT1();
data.getT2();
// set it to superUser
return <your_response_object>;
});
像这样使用Mono#zipWith:
Mono<SuperUser> superUserMono = user1.zipWith(user2)
.map(userTuple -> {
superUser.setProp1(userTuple.getT1().getProp1());
superUser.setProp2(userTuple.getT2().getProp1());
return superUser;
})
这是一种更简洁的方法:)
SuperUser superUser = new SuperUser();
return Mono.zip(user1, user2).flatMap(data -> {
String prop1 = data.getT1().getProp1();
String prop2 = data.getT2().getProp1();
if(prop1 != null)) {
superUser.setProp1(prop1);
}
if(prop2 != null) {
superUser.setProp2(prop2);
}
return superUser;
});