我正在从我的 GWT 客户端 javascript 对托管在不同服务器上的 Web 服务进行 REST 调用,其响应需要在 UI 上捕获和呈现。我通过 resty-gwt 做到这一点。但是当从 html 调用 javascript 方法时,我无法在实例中捕获该响应,而 html 又调用了 rest 调用。此外,我想确保如果我一个接一个地从 javascript 调用两个调用(这反过来又调用 rest 调用),则仅在第一个调用完成时才进行第二个调用。有没有办法达到同样的效果?
问问题
407 次
1 回答
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
于 2014-04-23T07:18:44.747 回答