Nit*_*706 5 reactive-programming project-reactor spring-webflux
我正在使用Spring Webflux,我需要在成功保存后返回用户的ID。
存储库正在返回 Mono
Mono<User> savedUserMono = repository.save(user);
Run Code Online (Sandbox Code Playgroud)
但是从控制器中,我需要返回 save() 调用返回的对象中的用户 ID。
我尝试过使用 doOn* 和 subscribe(),但是当我使用 subscribe 返回时,出现错误“意外的返回值”
每当您觉得需要将您的内容转换或映射Mono到其他内容时,您都可以使用该map()方法,传递一个 lambda 来执行转换,如下所示:
Mono<Integer> userId = savedUserMono.map(user -> user.getId());
Run Code Online (Sandbox Code Playgroud)
(当然,假设您的用户有一个getId()方法,并且id是一个整数。)
在这个简单的情况下,您还可以选择使用双冒号语法以获得更简洁的语法:
Mono<Integer> userId = savedUserMono.map(User::getId);
Run Code Online (Sandbox Code Playgroud)
订阅后生成的Mono将会发出用户的 ID。
你所做的是
Mono<String> id = user.map(user -> {
return user.getId();
});
Run Code Online (Sandbox Code Playgroud)
然后你将返回Mono<String>给客户端,如果你的id是一个字符串
| 归档时间: |
|
| 查看次数: |
16796 次 |
| 最近记录: |