有些事情我听不懂。我的GWT代码中有几个RPC调用,例如:

private final PravformServiceAsync getPravformService = GWT.create(PravformService.class);
getService.getSome(new AsyncCallback<List<Pravform>>() {
  public void onFailure(Throwable caught) {
  }
  public void onSuccess(List<Pravform> result) {
    pravformList = result;
  }
});


必须在程序启动时执行。但是在调试器的帮助下,我看到这些调用中的代码当时没有执行。它在所有其他代码之后在onModuleLoad()过程执行结束时执行。看起来我的RPC调用在第二轮代码执行中执行。

请解释一下为什么会发生。

最佳答案

这就是asyncronous means的确切含义,您永远不知道server何时将结果返回给client,并且意味着流程继续进行。这就是为什么人们通常在onSuccess()中编写代码,因此无法正常执行流程的原因直到请求完成。

明确的执行方式,并且RPC Plumbing Diagram有文档。

Please have a look.

关于java - GWT。 RPC调用顺序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18633306/

10-13 03:34