我无法理解。我的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调用在第二个代码循环上执行。
请解释一下为什么会这样。
答案 0 :(得分:1)
这正是asyncronous means
,你永远不会知道server
何时将结果返回给client
,并且当流程继续时就意味着。这就是人们通常在{{{ 1}},以便在请求完成之前停止执行流程。
明确执行,onSuccess()
是文档。
答案 1 :(得分:0)
接口名称中的 Async 代表异步。您必须使这些接口进行回调而不是使用仅返回值的同步接口。这个原因是它们是同步的,又名非阻塞。