拦截GWT RequestFactory请求

6
有没有一种方法在客户端拦截RequestFactory请求?
我想要拦截这样的调用:
dummyRequest.dummyOperation().fire( new Receiver<String>() {
  @Override
  public void onSuccess(String response) {        
  }
});

这个想法是在与服务器通信时显示一些加载指示。

2个回答

6

您可以在RF初始化期间覆盖默认的传输实现并传递它:

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

您可以继承DefaultRequestTransport并重写该方法。

send(String payload, TransportReceiver receiver)

在调用父类实现之前进行一些处理,并使用委托来处理TransportReceiver的结果。

3
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);

}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接