如何使用GWT通过javascript创建休息同步调用?

时间:2014-04-22 03:45:22

标签: gwt resty-gwt

我正在对我的GWT客户端javascript上托管在不同服务器上的Web服务进行REST调用,其响应需要在UI上捕获并呈现。我通过resty-gwt这样做。但是当从html调用javascript方法时,我无法在实例中捕获该响应,而html又调用其余的调用。另外,我想确保如果我一个接一个地调用来自javascript的两个调用(进而调用其余调用),则仅在第一次调用完成时才进行第二次调用。有没有办法实现同样的目标?

1 个答案:

答案 0 :(得分:0)

我认为你的问题有两个不同的问题:

A)无法捕获该回复

B)创建一系列电话

对于A),您应该向我们提供更多信息,代码段。您的问题是否与CORS相关联?

对于B)以下是我的建议

如果您正在使用2个异步调用,则无法保证在第二个调用之前返回一个异步调用。不过,您可以以不同方式实现某种同步。

我看到2个选项

1)等待第一个呼叫返回以启动第二个呼叫。这意味着在第一次调用时在onSuccess内部发送第二个调用(也可能在onFailure内部,具体取决于你的逻辑)。

此选项在性能方面不是最佳选项,因为您可能需要在发送第二个请求之前等待不必要的时间。这取决于您是否需要来自第一个请求的答案的一些信息才能发送第二个请求。

2)独立发送两个​​电话。然后,在每个调用的onSuccess方法中保存一个布尔值(ok1和ok2)。在2个onSuccess方法内部调用相同的方法ex:afterBothSuccess()

在此方法中检查ok1和ok2的值

if (ok1 && ok2) 
//here you are guaranteed that both your calls have returned with success