猿问

反应式编程

我想从 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();

我想同时执行这两个操作。


胡说叔叔
浏览 131回答 1
1回答

慕哥6287543

只需删除block()并继续flatmap您的发布者&nbsp; &nbsp; templateRepository.findActiveTemplate(tenantId)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .flatMap(bo -> {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; bo.setStatus(TemplateStatusEnum.DEACTIVATED);&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return Mono.just(bo);&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; })&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .flatMap(templateRepository::updateTemplate)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .flatMap(templateBo -> templateVersionRepository.findPublishedByTemplateId(templateBo.getId())&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .flatMap(version -> {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; version.setStatus(TemplateVersionStatusEnum.MODIFIED);&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return Mono.just(version);&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; })&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .flatMap(templateVersionRepository::updateVersion))&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .subscribe()
随时随地看视频慕课网APP

相关分类

Java
我要回答