Intercepting GWT RequestFactory requests

不想你离开。 提交于 2019-12-12 08:05:16

问题


Is there a way to intercept RequestFactory requests on client side?

I want to intercept calls like this:

dummyRequest.dummyOperation().fire( new Receiver<String>() {
  @Override
  public void onSuccess(String response) {        
  }
});

The idea is to show some loading indication when communicating with server.


回答1:


You can override the default transport implementation and pass it during RF initialization:

SampleRequestFactory factory = GWT.create( SampleRequestFactory.class );
factory.initialize( new SimpleEventBus(), new DefaultRequestTransport() );

You can inherit from DefaultRequestTransport and override the method

send(String payload, TransportReceiver receiver)

Do some processing before calling the super-implementation and wrap the TransportReceiver with a delegate to handle the result.




回答2:


final DefaultRequestTransport requestTransport = new DefaultRequestTransport() {
        @Override
        public void send(final String payload, final TransportReceiver receiver) {
            GWT.log("making rpc");
            final TransportReceiver proxy = new TransportReceiver() {
                @Override
                public void onTransportFailure(final ServerFailure failure) {
                    GWT.log("rpc returned");
                    receiver.onTransportFailure(failure);
                }

                @Override
                public void onTransportSuccess(final String payload) {
                    GWT.log("rpc returned");
                    receiver.onTransportSuccess(payload);
                }
            };

            super.send(payload, proxy);

}


来源:https://stackoverflow.com/questions/7608235/intercepting-gwt-requestfactory-requests

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!