首先,我知道进行同步调用是“错误的”,并且知道“不可能”。
但是,在非常复杂的情况下(我不知道如何解释),我需要等待服务器的响应,我正在对GWT RPC调用使用GWT-Platform命令实现。
我正在为此寻找某种“黑客”。
提前致谢。
有解决方案,但这并不容易(例如,您无法翻转单个参数以使其起作用)。GWT在后台使用了普通的JS XMLHttpRequest。在GWT中,有一个覆盖类型称为com.google.gwt.xhr.client.XMLHttpRequest。此类用于通过HTTP向服务器发送请求。每个JS XMLHttpRequest首先通过调用open方法来初始化。此方法具有很少的参数,但是第三个参数指定请求是否应该异步。如果将其更改为false,则请求将是同步的。
但是GWT- RPC不直接使用此类,而是通过RpcRequestBuilder使用它,并且此类也不直接使用XMLHttpRequest,而是使用RequestBuilder。
因此,您需要做的是创建RpcRequestBuilder和RequestBuilder的自定义版本(它们将使用初始化为同步的XMLHttpRequest)。
您可以通过将其转换为ServiceDefTarget来将RPCRequest构建器设置为GWT-RPC服务实例。
您是否仍想拥有同步的GWT-RPC请求?