Spring Reactor - 等到单声道完成后再做下一个单声道
Spring Reactor - Wait until a mono is finished then do next Mono
假设我有一个 repository.save(..) 方法,其中 returns 一个 Mono。
也可以说我有一个 repository.findByEmail(..) 其中 returns 一个单声道。
问题:
我希望第一个 Mono 在完成第二个 Mono 之后完成。
repository.save(..).then(repository.findByEmail(..))
然而,这里的第二个Mono总是先执行?
我的印象是 .then(..) finishes and then plays another Mono
源代码说:
Let this {@link Mono} complete then play another Mono.
我的问题有什么解决方案?
是什么让您认为此运算符的行为不符合预期?
以下示例显示了它:
Mono.just("first").log()
.then(Mono.just("second")).log()
.subscribe();
日志:
[main] INFO reactor.Mono.IgnoreThen.2 - | onSubscribe([Fuseable] MonoIgnoreThen.ThenIgnoreMain)
[main] INFO reactor.Mono.IgnoreThen.2 - | request(unbounded)
[main] INFO reactor.Mono.Just.1 - | onSubscribe([Synchronous Fuseable] Operators.ScalarSubscription)
[main] INFO reactor.Mono.Just.1 - | request(unbounded)
[main] INFO reactor.Mono.Just.1 - | onNext(first)
[main] INFO reactor.Mono.Just.1 - | onComplete()
[main] INFO reactor.Mono.IgnoreThen.2 - | onNext(second)
[main] INFO reactor.Mono.IgnoreThen.2 - | onComplete()
请添加 log
运算符并分享您问题中的日志。
假设我有一个 repository.save(..) 方法,其中 returns 一个 Mono。
也可以说我有一个 repository.findByEmail(..) 其中 returns 一个单声道。
问题:
我希望第一个 Mono 在完成第二个 Mono 之后完成。
repository.save(..).then(repository.findByEmail(..))
然而,这里的第二个Mono总是先执行?
我的印象是 .then(..) finishes and then plays another Mono
源代码说:
Let this {@link Mono} complete then play another Mono.
我的问题有什么解决方案?
是什么让您认为此运算符的行为不符合预期?
以下示例显示了它:
Mono.just("first").log()
.then(Mono.just("second")).log()
.subscribe();
日志:
[main] INFO reactor.Mono.IgnoreThen.2 - | onSubscribe([Fuseable] MonoIgnoreThen.ThenIgnoreMain)
[main] INFO reactor.Mono.IgnoreThen.2 - | request(unbounded)
[main] INFO reactor.Mono.Just.1 - | onSubscribe([Synchronous Fuseable] Operators.ScalarSubscription)
[main] INFO reactor.Mono.Just.1 - | request(unbounded)
[main] INFO reactor.Mono.Just.1 - | onNext(first)
[main] INFO reactor.Mono.Just.1 - | onComplete()
[main] INFO reactor.Mono.IgnoreThen.2 - | onNext(second)
[main] INFO reactor.Mono.IgnoreThen.2 - | onComplete()
请添加 log
运算符并分享您问题中的日志。