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

时间:2013-03-26 11:37:36

标签: java gwt

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

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

有可能......

2 个答案:

答案 0 :(得分: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) {

            };
        });

答案 1 :(得分:-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)接收String,如果要构建通用回调管理器,则自定义方法必须处理正确的Type处理。另请注意,您不需要在进行调用时实现回调方法。