在执行其他方法或代码之前完成 RPC 调用?

Posted

技术标签:

【中文标题】在执行其他方法或代码之前完成 RPC 调用?【英文标题】:Completing the RPC call befor the execution of other methods or code? 【发布时间】:2012-03-19 15:00:52 【问题描述】:

我正在 GWT 中做 Web 应用程序项目。 我正在使用 RPC,它工作正常。

我有 4 个包裹

    .client .client.GUI .client.control .共享 .server

来自 .gui.loginpage

在按钮的onClickmethod 上,我创建了一个位于client.control 中的登录类对象

onSuccess 的 RPC public Boolean setConnection(true)

但是当我尝试getConnectionform .gui.loginpage 时,它显示为空。

因为回调函数是异步执行的,所以在服务器响应到浏览器后调用该函数。

但另一部分代码立即执行,此时连接仍为null

我需要一个解决方案或方法或任何逻辑,以便其他函数等待 rpc 调用完成。

【问题讨论】:

【参考方案1】:

听起来您正在尝试同步使用异步通信。进行异步调用后,您不得处理任何其他事情。您要在异步后执行的所有逻辑都必须进入异步回调函数或异步回调调用的另一个函数。只需显示一个微调器,然后在异步响应中完成您正在执行的操作。

【讨论】:

以上是关于在执行其他方法或代码之前完成 RPC 调用?的主要内容,如果未能解决你的问题,请参考以下文章

UE4网络之(二) 远程调用函数(RPC)

UE4 网络同步原理三 RPC

手写RPC框架-重写服务治理和引入netty,开启1000个线程看看执行调用情况

—— iOS 运行时中方法的调用流程

图解 RPC 调用过程

RPC理论以及Dubbo的使用介绍