我正在尝试使用回调获取服务器变量的状态。显然,状态始终是
false
。如何从服务器获取状态?或者另一个问题,我必须从服务器端获取哪些选项?
public static void testCallback(){
AsyncServiceRegistry.getUserService().isState(new AsyncCallback<Boolean>() {
@Override
public void onFailure(Throwable caught) {}
@Override
public void onSuccess(Boolean result) {
ApplicationContext.setState(result);
}
});
boolean state = ApplicationContext.getState();
if (state) {
System.out.println(true);
//do smth if true
} else {
System.out.println(false);
//do smth if false
}
}
注意
Async
中的AsyncCallback
:您正在对服务器进行异步调用,但您的代码正在尝试同步读取该值。在调用 onSuccess 或 onFailure 之前,还没有任何状态返回到服务器。
很久以前,浏览器支持对服务器的同步调用,但 GWT-RPC 从未支持过,并且浏览器已经删除了该功能 除了在 Web Worker 上运行时 - 页面本身永远无法执行您所要求的操作。
您可以追求的两个简短选项(但如果没有更多代码,很难提出具体建议 - 即“除了记录值之外,您打算用它做什么”):