java - 如何从客户端角度使用异步方法

标签 java asynchronous reactive-programming rx-java

因此,我对整个功能响应式(Reactive)范式产生了浓厚的兴趣,并尝试将其中的一些实践付诸实践。但我仍在努力理解的一件事是如何在前端使用这些异步服务器端调用。因此,假设您的服务层导致 Observable<?>对象,它将由您的 Controller 调用。伟大的。但是现在,您如何处理来自客户端的异步结果?通常这是您要阻止结果的地方,例如 Future<?>对象,然后构建结果对象并将其发送回调用客户端。但关键是不要阻塞,那么你现在用你的 Observable 做了什么?一旦结果可用,您是否必须使用网络套接字将结果“下推”?

我希望这个问题是有道理的。只要服务器端存在调用和结果消费者,所有这些都是有意义的。但是在 Web 应用程序中,客户端在调用 Controller 后期望得到结果,我不明白如何在此处保持异步、响应式(Reactive)范例。非常感谢任何帮助理解这一点。

最佳答案

是的,您会使用网络套接字之类的东西来“推送”结果。这是功能性 react 范式的基本品质 - 客户端对推送的结果做出“ react ”,就像(四人组)观察者模式的任何实现一样。

顺便说一句,原始 Microsoft 团队提供了 rx 的 javascript 实现,您可能会感兴趣。找到它here .

关于java - 如何从客户端角度使用异步方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19641154/

相关文章:

java - 在流管道中保存到数据库

java - 在对父类(super class)构造函数的 super 调用中使用子类方法作为参数

java - 简单的 Android Activity 导致崩溃

java - 非阻塞风格有什么好处?

java - 使用 Observables RxJava 进行文件验证

ios - 我应该如何使用 RxSwift 更新 UITableViewCell?

java - Netty请求超时

c++ - boost::asio 读取处理程序类型要求未满足

c# - C# 游戏中 NPC 的异步行为

r - 观察输入的变化并更新 R Shiny 中的输出