【发布时间】:2019-06-21 14:40:22
【问题描述】:
当使用 .then(Mono<Void>) 组合许多 Mono<Void>s 时,它们不会按预期顺序运行。
有人可以解释下面的工作代码和非工作代码之间的区别吗?
工作代码
StepVerifier.create(
repository.incrementCounter(bucket, timeStamp)
.then(repository.incrementCounter(bucket, timeStamp))
.then(Mono.just(1).flatMap(t -> repository.resetCounter(bucket, timeStamp)))
.then(Mono.just(1).flatMap(t -> repository.getCounter(bucket, timeStamp))))
.expectNext(0L)
.verifyComplete();
不工作
StepVerifier.create(
repository.incrementCounter(bucket, timeStamp)
.then(repository.incrementCounter(bucket, timeStamp))
.then(repository.resetCounter(bucket, timeStamp))
.then(repository.getCounter(bucket, timeStamp)))
.expectNext(0L)
.verifyComplete();
【问题讨论】:
标签: java project-reactor reactive-streams