我有兩個 Api 回傳兩個不同的 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 物件發送一些方法。
uj5u.com熱心網友回復:
壓縮兩個單聲道并從元組創建超級用戶
Mono.zip(user1, user2).flatMap(data->{
// get those values as below
data.getT1();
data.getT2();
// set it to superUser
return <your_response_object>;
});
uj5u.com熱心網友回復:
這是一種更簡潔的方法:)
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;
});
uj5u.com熱心網友回復:
像這樣使用Mono#zipWith:
Mono<SuperUser> superUserMono = user1.zipWith(user2)
.map(userTuple -> {
superUser.setProp1(userTuple.getT1().getProp1());
superUser.setProp2(userTuple.getT2().getProp1());
return superUser;
})
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/391913.html
標籤:爪哇 春天 弹簧-webflux
