gpt4 book ai didi

java - Spring WebFlux : block() method return null in Spring Data Reactive MongoDB

转载 作者:行者123 更新时间:2023-12-02 12:18:57 27 4
gpt4 key购买 nike

我正在尝试学习 Reactor 项目,但遇到了问题。

@Test
@DisplayName("check that standaloneUser fields are correct")
void validateUserFields() {
userService.save(standaloneUser).subscribe();
assertEquals(userService.count().block(), Long.valueOf(1));
User user = userService.findByEmail("test@gmail.com").block();
assertNotNull(user);
assertNotNull(user.getId());
assertEquals(user.getFirstName(), "test");
assertEquals(user.getLastName(), "test");
assertNotEquals(user.getPassword(), "test");
assertEquals(user.getRole(), Role.CANDIDATE);
assertNotNull(user.getCreatedDate());
assertNull(user.getStoppedDate());
assertEquals(user.getEmail(), "test@gmail.com");
}

有时 block() 方法会返回 null。谁能给我解释一下这个?谢谢

最佳答案

block() 可以返回null,这意味着Mono完成为空,在这种情况下意味着没有找到用户。

难道是没有保存好? (尽管您断言用户数量)

请注意,您执行了userService.save(standaloneUser).subscribe()。这种形式通常并不理想,因为它是“异步即发即弃”:

  • 异步 -> 它可能在后续断言之后完成
  • 一劳永逸 -> 没有错误处理程序意味着它可能会因错误而终止并向您隐藏

养成在调用 subscribe 时至少设置 onNext 和 onError 处理程序 lambda 的习惯。

关于java - Spring WebFlux : block() method return null in Spring Data Reactive MongoDB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45945781/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com