gpt4 book ai didi

project-reactor - Spring Reactor - 等到一个单声道完成然后做下一个单声道

转载 作者:行者123 更新时间:2023-12-05 01:00:32 28 4
gpt4 key购买 nike

假设我有一个返回 Mono 的 repository.save(..) 方法。

还可以说我有一个 repository.findByEmail(..) 它返回一个 Mono。

问题:

我希望第一个 Mono 在完成第二个 Mono 之后完成。

repository.save(..).then(repository.findByEmail(..))

但是,这里的第二个 Mono 总是先执行?我的印象是 .then(..) 完成然后播放另一个 Mono

源码说:
让这个 {@link Mono} 完成,然后播放另一个 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 运算符并在您的问题中分享日志。

关于project-reactor - Spring Reactor - 等到一个单声道完成然后做下一个单声道,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49233236/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com