cod*_*ent 2 reactive-programming project-reactor spring-webflux
我的程序服务提供了一些返回的删除方法Mono<Void>,例如:fun delete(clientId: String) : Mono<Void>
调用后,.delete("x")我想向下游传播 clientId 以执行其他操作:
userService.get(id).map{ user ->
userService.delete(user.id) //This returns Mono<Void>
.map {
user.id //Never called!!!
}
.map { userId ->
//other calls using the propagated userId
}
}
Run Code Online (Sandbox Code Playgroud)
问题是因为 delete 返回 a Mono<Void>,所以.map {
user.id }永远不会调用以下内容。那么如何将 theMono<Void>转换为 aMono<String>来传播 userId?
您可以使用thenReturn运算符:
userService.get(id)
.flatMap { user -> userService.delete(user.id).thenReturn(user.id) }
.flatMap { id -> //other calls using the propagated userId }
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1999 次 |
| 最近记录: |