反应式编程

阿莫尔·卡维

我想从Mono中提取对象,然后使用该对象执行其他数据库操作,如何在不使用block()的情况下执行此操作?

像下面

  Mono<TemplateBo> templateBoMono = 
  templateRepository.findActiveTemplate(tenantId);

    TemplateBo templateBo=
    templateBoMono.flatMap(bo -> {
        bo.setStatus(TemplateStatusEnum.DEACTIVATED);
        return Mono.just(bo);
    }).flatMap(templateRepository::updateTemplate).block();

    templateVersionRepository.findPublishedByTemplateId(templateBo.getId()).flatMap(version -> {
        version.setStatus(TemplateVersionStatusEnum.MODIFIED);
        return Mono.just(version);
    }).flatMap(templateVersionRepository::updateVersion).subscribe();

我想一次执行两个操作。

亚历山大·潘金

只需删除block()并继续flatmap您的发布者

    templateRepository.findActiveTemplate(tenantId)
            .flatMap(bo -> {
                bo.setStatus(TemplateStatusEnum.DEACTIVATED);
                return Mono.just(bo);
            })
            .flatMap(templateRepository::updateTemplate)
            .flatMap(templateBo -> templateVersionRepository.findPublishedByTemplateId(templateBo.getId())
                    .flatMap(version -> {
                        version.setStatus(TemplateVersionStatusEnum.MODIFIED);
                        return Mono.just(version);
                    })
                    .flatMap(templateVersionRepository::updateVersion))
            .subscribe()

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章