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 运算符并分享您问题中的日志。