首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WebFlux & formation

WebFlux & formation
EN

Stack Overflow用户
提问于 2022-09-11 11:28:59
回答 1查看 40关注 0票数 0

哈罗最近开始学习网络流量。

有时,我遇到一些任务,您需要生成一个简单的DTO并返回它,例如,通常的类dto。

代码语言:javascript
复制
  @Data
  @Builder
  public static class Dto {

    private long id;
    private String code1;
    private String code2;
  }

有两种方法的原始服务。

代码语言:javascript
复制
  @Nullable Mono<String> getCode1(long id);
  @Nullable String getCode2(long id);

并编写了一个在Mono输出处形成的方法。

代码语言:javascript
复制
  private Mono<Dto> fill(long id) {
var dto = Dto.builder()
    .id(id)
    .build();

//doOnNext
var dtoMono1 = service.getCode1(id)
    .map(code -> {
      dto.setCode1(code);
      return dto;
    })
    .doOnNext(innerDto -> innerDto.setCode2(service.getCode2(id)));

//map
var dtoMono2 = service.getCode1(id)
    .map(code -> {
      dto.setCode1(code);
      return dto;
    })
    .map(unused -> service.getCode2(id))
    .map(code -> {
      dto.setCode1(code);
      return dto;
    });

//just
var dtoMono3 = Mono.just(dto)
    .flatMap(innerDto -> service.getCode1(innerDto.getId()));

//just
var dtoMono4 = Mono.fromCallable(() -> dto)
    .subscribeOn(Schedulers.boundedElastic())
    .flatMap(innerDto -> service.getCode1(innerDto.getId()));
}

问题:

  1. 可以简单地创建DTO并在网络流量调用链中使用它.或者,我需要用、mono.just、或(什么是优点和缺点)来包装,
  2. 如何最好地通过doOnNextMAP填充值。在MAP中会出现一个额外的行(返回DTO),一些人还告诉我,如果NULL来了,doOnNext将错过它,并进一步填充当前的dto。但是另一方面,MAP用于转换对象,而doOnNext则更多用于调试和记录

谢谢你..。

EN

回答 1

Stack Overflow用户

发布于 2022-09-11 21:54:40

在这种情况下使用zip运算符如何?我希望这个例子能帮助你:

代码语言:javascript
复制
private Mono<Dto> fill(long id) {
    return Mono.zip(someService.getCode1(id), Mono.just(someService.getCode2(id)))
            .map(tuple ->
                    Dto.builder()
                            .id(id)
                            .code1(tuple.getT1())
                            .code2(tuple.getT2())
                            .build()
            );
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73678877

复制
相关文章

相似问题

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