It also exists the delayUntil
method for Mono:
Mono<Foo> fooMono = fooService.loadFoo();
fooMono.delayUntil(foo -> barService.loadBarForFoo(foo))
Or, using method reference:
Mono<Foo> fooMono = fooService.loadFoo();
fooMono.delayUntil(barService::loadBarForFoo)
Method reference: Mono.delayUntil