-2

此方法正在更新测试变量。但问题是,如果条件不等待调用完成,而是执行并产生错误的结果。任何建议。

((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;
}
4

1 回答 1

3

异步意味着您不知道回调何时发生,这就是它不等待的原因。同样在 java 中,我们通常使用 booleans(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 中处理检查会话后的其余代码。我建议遵循一些谷歌的教程,比如谷歌 RPC 教程

于 2012-05-11T06:38:33.813 回答