繁体   English   中英

GWT。 RPC调用顺序

[英]GWT. Order of RPC call

有些事情我听不懂。 我的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()编写其代码,从而使流程的虚假执行停止直到请求完成。

Docs是一个清晰的执行和RPC Plumbing Diagram

请看一看。

接口名称中的Async代表异步 有一个原因,您必须使这些接口接受回调,而不要使用仅返回值的同步接口。 那是因为它们是同步的,也就是非阻塞

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM