クライアント側で gwt を使用する場合、コールバック メソッドで処理を行う非同期メソッドを呼び出すという一般的な状況があります。
asyncService.method(new AbstractAsyncCallback<Number>() {
@Override
public void onSuccess(Number num) {
// do something with number
}
});
しかし、ある非同期メソッドから結果を取得したり、別の非同期メソッドに渡したりする必要がある状況に遭遇することがよくあります。
asyncService.method(new AbstractAsyncCallback<Number>() {
@Override
public void onSuccess(Number num) {
asyncService.method1(num, new AbstractAsyncCallback<String>() {
@Override
public void onSuccess(String str) {
asyncService.method2(str, new AbstractAsyncCallback<Void>() {
@Override
public void onSuccess(Void void) {
// do something
}
});
}
});
}
});
サーバー側でこの 3 つの呼び出しを組み合わせて、個別のサービス メソッドを作成できますが、このような異なるメソッドの組み合わせが多数必要な場合はどうすればよいでしょうか? 別の懸念は、既存のメソッドを単純に組み合わせることで取得できる機能を実行する別のメソッドを追加することです。
そのようなコードを取り除き、サーバー側のサービスを変更しない一般的なパターンはありますか?