首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于业务逻辑的兵变组合Uni和Multi

基于业务逻辑的兵变组合Uni和Multi
EN

Stack Overflow用户
提问于 2022-02-04 13:31:13
回答 1查看 1.5K关注 0票数 2

我对反应性编程很陌生。请协助实现以下的穆特尼。

我有DTO课程

代码语言:javascript
复制
public class UserAppSessionDto{
    private UserDto user;
    private List<OrgDto>  userOrgs;
    private List<AppDto> userApps;
}

3种服务方法,一个返回Uni,另一个返回Multi

代码语言:javascript
复制
Uni<UserDto> getUserByOrgUserId(Integer orgUserId);
Multi<AppDto> getUserApps(Integer orgUserId);
Multi<RoleDto> getUserRoles(Integer orgUserId);

我需要编写一个调用上述3个方法的服务方法,应用一些业务验证,将返回值设置为UserAppSessionDto的一个实例,并返回一个Uni<UserAppSessionDto>。我已经提到了下面要应用的基本业务逻辑(null检查)。

代码语言:javascript
复制
public Uni<UserAppSessionDto> getUserAppSessionDetails(Integer orgUserId)
         {
             UserAppSessionDto user=new UserAppSessionDto();

             //1. call the method Uni<UserDto> getUserByOrgUserId(Integer orgUserId)
             //2. If UserDto (in the returned Uni) is not null, call Multi<AppDto> getUserApps(Integer orgUserId) and Multi<RoleDto> getUserRoles(Integer orgUserId) methods in parallel. 
             //3. Set the return values from the above three methods into user variable
             //4. Return Uni<UserAppSessionDto>

             return Uni.createFrom().item(user);
         }
EN

回答 1

Stack Overflow用户

发布于 2022-02-09 07:46:18

getUserAppsgetUserRoles返回Multis的原因有什么?我不相信他们会流结果,相反,返回一个批的列表。如果是这样的话,使用Uni<List<X>更好。

通过这种更改,您的逻辑变得容易得多:

代码语言:javascript
复制
public Uni<UserAppSessionDto> getUserAppSessionDetails(Integer orgUserId) {
  UserAppSessionDto user=new UserAppSessionDto();

 Uni<UserDto> uni = getUserByOrgUserId(orgUserId)
       .invoke(userDTO -> user.user = userDTO);
 
return uni
   onItem().ifNotNull().transformToUni(userdto -> 
       Uni.combine().all()
         .unis(getUserApps(orgUserId),getUserRoles(orgUserId))
         .asTuple()
         .invoke((apps, roles) -> user....)
     )
     .map(x -> user);
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70987223

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档