好的,GWT 中没有同步调用。
但是如果我有这样的东西:
class XXX {
Config c=new Config();
c.doSomething();
}
和类 Config
public class Config {
private static HashMap<String,String> map;
public Config(){
final ServerProxyAsync serverProxy= GWT.create(ServerProxy.class);
serverProxy.getParameters(new AsyncCallback<HashMap<String,String>>() {
@Override
public void onFailure(Throwable caught) {
System.out.println("getParameters: FAILED!");
map=null;
}
@Override
public void onSuccess(HashMap<String, String> result) {
System.out.println("getParameters: OK!");
map=result;
// RETURN NOW!!!!
}
});
}
如果异步调用没有终止,我就无法执行doSomething()
,因为有时会在 map 初始化之前调用该方法。
有办法吗?
最佳答案
怎么样doSomething()
在onSuccess()
?
您不能使用synchronous call in GWT.
即使你以某种方式做到了,但这不是一个好的做法
当您需要这个时,您必须执行 onSuccess();
中的内容您的 RPC 调用。
所以,最好的想法是简单地使用异步方法并通过提供的回调继续执行。您最终将获得更好的用户体验,以及更专业的外观
应用程序。
关于java - GWT - 方法的同步返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14920355/