public Class GUi(){
// More Code
public void onClick(ClickEvent event) {
LoginServer loginServer =new LoginServer(getTextBoxUsername().getText(),getTextBoxPassword().getText());
loginServer.setConnection(connection);
connection=loginServer.getConnection();
System.out.println(" connected "+connection);
// More code
}
public class LoginServer {
// more code
public void setConnection(Boolean connection) {
String[] authentication = {username,password};
//RPC call
connectionService.connectionServer(authentication, callbackConnection);
System.out.println("setConnection" + connection);
}
public Boolean getConnection() {
return connection;
}
AsyncCallback callbackConnection = new AsyncCallback() {
public void onFailure(Throwable caught) {
// TODO Auto-generated method stub
connection=false;
}
public void onSuccess(Object result) {
connection=true;
System.out.println("onSuccess + connection);
}
};
}
setConnectionnull
connected null
onSuccesstrue
ミーによると、出力は次のようになります。
onSuccesstrue
setConnectiontrue
connected null
は、私はその後、私は完全に正常に動作して書かれたRPC呼び出しがあるメソッドを呼び出す
setConnection
LoginServer ;
のオブジェクトを作ったので。
OnSucces
は、接続の値を変更します。 次に、メソッド
getConnection
を呼び出しました。
は
私はまた、あなたがあなたにビールを持ってあなたの妻/ガールフレンドを求めるならconnected null
:)素敵な説明。上記のリンクは良いリンクではありません。私はページが開かないことを意味する。 は、あなたは私のasyncCallが完了するのを待ってから、reminingコードを実行するために使用することができますwhicいくつかの方法を提案することができます。 – NewCodeLearner
私はあなたのことを完全に理解しています。それにはどんな解決策もあります。 私はasyncInterfaceの実行が完了する前に、私の他の方法を停止したいです。 他のコードはすべて、asyncのsuccesに依存します。たとえばLoginGuiは非同期呼び出しがあるログインクラスを呼び出します。イベントの成功の次のページはLoaded.IはOnsuccessメソッド内の別のnextPageのオブジェクトを作成できません。私はGUIと論理部分をseprateしたいので。 – NewCodeLearner
が呼ばれるように、あなたの 'setConnection'メソッドにコールバック引数を追加し' onSuccess'(または、より簡単に、あなたのRPCに直接渡すことを、あなたの方法に 'AsyncCallback'を渡す、または単にあなたの' LoginServer'を削除し、使用して ' connectionService'を直接呼び出します)。 –