【发布时间】:2020-11-09 22:31:25
【问题描述】:
我正在尝试通过在 java 中使用 slack 的 sdk 客户端进行呼叫,以便使用电子邮件名称获取用户的 ID。松弛客户端返回CompletableFuture 对象。如果我使用 get() 方法,我可以获得 user_name,但据我了解,它是一个同步函数,它会使应用程序变慢。还有其他方法可以使此调用异步吗?
public static String lookUpUserId(String email) throws ExecutionException, InterruptedException {
CompletableFuture<UsersLookupByEmailResponse> response = slackClient.usersLookupByEmail(r -> r
.email(email));
UsersLookupByEmailResponse data = response.get();
return data.getUser().getId();
}
我尝试像这样使用 supplyFunc 和 thenApply,但它给出了一个错误,提示“缺少返回语句”,尽管我返回了一个值。我只是关心性能并且好奇是否有更好的方法来处理这个问题。谢谢
response.thenApply(r->r.getUser().getId());
【问题讨论】:
标签: java spring http asynchronous