【发布时间】:2019-01-02 01:27:48
【问题描述】:
我想调用之前返回Mono<Void>时的方法:
@Override
public Mono<Void> sendEmail(EmailDto emailDto) {
return mailReactiveClient.sendEmail(message ->
createMessage(emailDto, emailDto.getBody(), message))
.doOnNext(saveNotificationLog(emailDto)); //it's not work
}
private void saveNotificationLog(EmailDto emailDto) {
notificationLogReactiveRepository.save(NotificationLog.builder()
...
.build());
}
方法sendEmail返回Mono<Void>。
那么如何拨打saveNotificationLog?
UPD:让我的问题更简单:
@Override
public Mono<Void> sendEmail(EmailDto emailDto) {
return mailReactiveClient.sendEmail(message ->
createMessage(emailDto, emailDto.getBody(), message))
.doOnNext(System.out.print("Hello world!");
}
sendEmail返回Mono<Void>后如何调用doOnNext或类似方法?
【问题讨论】:
-
notificationLogReactiveRepository阻塞了吗? -
不,它将 NotificationLog obj 存储在 DB 中并返回 Mono
标签: java reactive-programming spring-webflux project-reactor