为了账号安全,请及时绑定邮箱和手机立即绑定

反应式编程

反应式编程

胡说叔叔 2021-11-11 16:40:49
我想从 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();我想同时执行这两个操作。
查看完整描述

1 回答

?
慕哥6287543

TA贡献1831条经验 获得超10个赞

只需删除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()


查看完整回答
反对 回复 2021-11-11
  • 1 回答
  • 0 关注
  • 123 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信