简单的客户端如何处理来自异步RESTful Web服务的CompletableFuture响应?

时间:2019-01-10 15:24:51

标签: rest spring-boot asynchronous

有许多异步RESTful Spring引导Web服务的示例,它们都与CompletableFuture有关:

@RestController
public class TestController {

  private UserService userService;

  public TestController(UserService userService) {
    this.userService = userService;
  }

  @RequestMapping(value = "test")
  public @ResponseBody CompletableFuture<User> test(@RequestParam(value = "email", required = true) String email) throws InterruptedException {
    return userService.findByEmail(email).thenApplyAsync(user -> {
      return user;
    })
  }  
}

但是我的问题是:假设它只是一个邮递员或浏览器,什么将获得客户端而不是CompletableFuture? 我知道什么是CompletableFuture并且知道如何处理它,但是在我的Java代码中,所以我很好奇,

  1. 什么将获得简单的客户端(谁也不知道Java 也不涉及CompletableFuture)
  2. 假设服务器将计算5分钟的结果,那么客户端何时会得到结果?异步意味着立即返回并稍后获得回调。我知道CompletableFuture.get()(是的,我知道是阻塞的),但同样只有Java知道如何从CompletableFuture获取结果

所以请澄清一下它是如何工作的?

0 个答案:

没有答案