如何使用同步呼叫GWT或等待呼叫完成
问题描述:
此方法更新测试变量。但问题是,如果条件不等待调用完成,它会执行并产生错误的结果。任何建议。如何使用同步呼叫GWT或等待呼叫完成
((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;
}
答
异步意味着你不知道何时会发生回调,这就是为什么它不会等待。另外在java中,我们通常使用布尔值(真,假)而不是数字。这里是你会做什么的例子:
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 RPC tutorial的教程。
你** **迫切需要重新阅读RPC的GWT文档。 –
您必须使用回调才能从服务器获取某些内容。这被称为异步编程,这就是为什么你有Async接口。请在发布问题之前研究GWT的基本知识。 – Renato
兄弟我知道,但问题是如何停止客户端线程,使变量更新。 –