1
我有一個App Engine GWT應用程序。在我的客戶端代碼中,我獲取了登錄用戶的電子郵件,並且想要顯示它。我通過向服務器發送請求獲取用戶電子郵件。App Engine GWT代碼沒有在正確的時間執行
問題是正在執行getUserEmail()方法之後已執行onModuleLoad()方法,因此userEmail-String將變爲null,我想要顯示它。我已經檢查過,getUserEmail()方法實際上會返回正確的信息,如上所述,我的問題是,當我得到我想要的信息時,。任何人都可以指出我爲什麼發生這種情況,以及如何解決這個問題?
public String userEmail;
@Override
public void onModuleLoad() {
getUserEmail();
HTML mHTML = new HTML();
mHTML.setHTML("<HTML><BODY> Logged in as " + userEmail + "</BODY></HTML>");
RootPanel.get().add(mHTML);
}
public void getUserEmail(){
requestFactory.getUserEmailRequest().getUserEmail().fire(
new Receiver<String>() {
@Override
public void onSuccess(String result) {
userEmail = result;
}
});
}
謝謝,那我做了什麼,但反正是有使getUserEmail()同步? – Drublic
不可以。在GWT中沒有其他選擇。你可以在內部類之外聲明UI。但是代碼mHTML.setHTML(result);必須在裏面。 – Hussar