响应式编程
Reactive programming
我想从 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()
我想从 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()