0

有没有办法在 GWT 应用程序的客户端调用自定义的 Aysnc 回调函数?

根据我的担心,我需要在客户端调用我的自定义回调函数,而不是默认的 AsyncCallback 函数。

可能吗.....

4

2 回答 2

2

是的,你可以这样做

import com.google.gwt.user.client.rpc.AsyncCallback;

public interface MycustomisedCallBack extends AsyncCallback<T> {


   @Override
    public void onFailure(Throwable caught);
   @Override
    public void onSuccess(T result);

    public void onmyMethod();
}

并将您 的传递MycustomisedCallBack给 RPC。

rpcService.rpcMethod(new MycustomisedCallBack() {

            @Override
            public void onmyMethod() {
                // TODO Auto-generated method stub

            }

            @Override
            public void onFailure(Throwable caught) {
                // TODO Auto-generated method stub

            }

            @Override
            public void onSuccess(T result) {

            };
        });
于 2013-03-26T11:54:25.007 回答
-1

首先,您需要创建自己的自定义 AsyncCallback 类,例如:

import com.google.gwt.user.client.rpc.AsyncCallback;

public class MyAsyncCallback<T> implements AsyncCallback<T> {

    public void onFailure(Throwable arg0) {
        // default onFailure method, invoking your method
        myOnFailure(arg0);
    }

    private void myOnFailure(Throwable arg0) {
        // Your code here
    }

    public void onSuccess(T arg0) {
        // default onSuccess method invoking your method
        myOnSuccess (arg0);
    }

    private void myOnSuccess(T arg0) {
        // Your code here
    }
}

此类将从被调用的服务接收任何结果类型,将对 onSuccess 和 onFailure 方法的调用委托给您自己的方法(myOnSuccess 和 myOnFailure),您可以在其中放置代码。

下一步是使用新的 MyAsyncCallback 类来调用 rpc 服务。例如:

myService.sendString("foo", new MyAsyncCallback<String>());

在此示例中,被调用的方法 (sendString) 接收一个字符串,如果您想构建一个通用回调管理器,您的自定义方法必须处理正确的类型处理。另请注意,您不需要在调用时实现回调方法。

于 2013-03-26T16:10:49.487 回答