此方法正在更新测试变量。但问题是如果条件不等待调用完成而不是它执行并产生错误的结果。任何建议。
((GWTServiceUsersAsync)GWT.create(GWTServiceUsers.class)).checkSession(callbackcheck);
if(test==0) {
MessageBox.alert("Access denied", "Access denied, please log in", null);
return 0;
} else {
return 1;
}
答案 0 :(得分:3)
异步意味着您不知道何时会发生回调,这就是它不等待的原因。同样在java中我们通常使用布尔值(true,false)而不是数字。以下是您要做的事情的示例:
GWTServiceUsersAsync service = GWT.create(GWTServiceUsersAsync.class)
service.checkSession(new AsyncCallback() {
public void onSuccess(boolean test) {
if(!test) {
MessageBox.alert("Access denied", "Access denied, please log in", null);
responseHandlingMethod(true);
}
responseHandlingMethod(test);
}
public void onFailure(Exception e) {
responseHandlingMethod(test);
}
}
然后可以在responseHandlingMethod中处理检查会话之后的其余代码。我建议按照google的一些教程Google RPC tutorial进行操作。