对不起,我对反应范式还不熟悉。可以使用AtomicReference来获取Mono的值,因为反应式代码可以异步运行,并且不同的事件可以在不同的线程上运行。请参见下面的示例。我也不确定这段代码是否被认为是被动的
示例代码:
public static void main(String[] a) {
AtomicReference<UserDTO> dto = new AtomicReference<>();
Mono.just(new UserDTO())
.doOnNext(d -> d.setUserId(123L))
.subscribe(d -> dto.set(d));
UserDTO result = dto.get();
dto.set(null);
System.out.println(result); // produce UserDTO(userId=123)
System.out.println(dto.get()); // produce null
}
您共享的代码段不能保证始终有效。无法保证doOnNext中的函数将在dto之前发生。get()。您已经创建了比赛条件。
您可以运行以下代码来模拟这一点。
AtomicReference<UserDTO> dto = new AtomicReference<>();
Mono.just(new UserDTO())
.delayElement(Duration.ofSeconds(1))
.doOnNext(d -> d.setUserId(123L))
.subscribe(dto::set);
UserDTO result = dto.get();
System.out.println(result); // produces null
要使此示例完全响应,您应该在订阅
运算符中打印出来
Mono.just(new UserDTO())
.doOnNext(d -> d.setUserId(123L))
.subscribe(System.out::println)
在一个更“真实的世界”示例中,您的方法将返回一个Mono
**编辑**
如果您希望在反应流中进行阻塞调用,那么前面的堆栈溢出问题包含了一个很好的答案
问题内容: 是否可以输入字符并取回unicode值?例如,我可以在HTML中输入&#12103以输出“⽇”,是否可以将该字符作为函数的参数并获得数字作为输出而无需构建unicode表? 还是相反? 我希望能够将实际字符输出到页面上而不是代码中,并且如果可能的话,我也希望能够从字符中获取代码。我最想要的是php.net/manual/en/function.mb- decode-numericent
完整的请求链是: > : 或(似乎无关紧要): ,因为此时站点是相同的,并且浏览器显示cookie 对于用户上次加载的页面不在上的一般情况,我赞赏将呈现给的CSRF潜力,但我只是将其从设置,现在我是重定向到的人。 当然,我可以设置,但是如果有人可以找到某种方法通过错误地创建URL来触发他们从我的站点选择的重定向,那么就不会有点击劫持的可能吗?
问题内容: 我正在做与此问题类似的事情,在此我有一个复选框列表作为自定义编辑控件。区别在于我想从服务器获取列表(不是在客户端使用 Check1,Check2,Check3进行 硬编码)。 在列设置或 custom_element 函数中,有什么方法可以这样做吗? 似乎我需要与用于选择项的 dataUrl 属性类似的 东西 ,但这似乎仅适用于选择项(不适用于自定义项)。 有什么建议? 问题答案: 您
问题内容: 如果我有这个: 如果可能的话,如何在不实际调用方法的情况下获得对f.bar的引用? 编辑添加:我想做的是编写一个对f的成员进行迭代并对其执行某些操作的函数(不重要)。属性让我感到震惊,因为仅在getattr()中命名它们会调用其__get __()方法。 问题答案: (下图)在给定对象的中查找,如果存在则返回关联的值。如果不是其中的关键,则搜索对象的MRO 。如果找不到密钥,则引发。
我收到了这个错误:“WebDriverException:消息:'chromedriver'可执行文件需要在路径中。”我能够修复它的唯一方法是手动添加chromedriver的一个位置,如下所示: Chrome启动后,我收到了这个错误:“您使用的是不受支持的命令行标志:--忽略认证错误。稳定性和安全性将受到影响。” 我想尝试使用以下代码来解决这个新错误,但我不知道如何/是否可以将其与手动指定chr
我有两个对象,每个对象都包含一个列表,我的整个Spring Boot项目都使用ProjectReactor构造。我应该在flux或mono map操作中使用java流进行遍历吗 或者我应该在flux的映射操作中使用java流。