调用异步功能时自动显示“正在加载”指示器

调用异步功能时自动显示“正在加载”指示器,第1张

调用异步功能时自动显示“正在加载”指示器

您可以将调用本身包装在处理显示加载消息的对象中,也许对错误或其他原因重试几次。像这样:

public abstract class AsyncCall<T> implements AsyncCallback<T> {        protected abstract void callService(AsyncCallback<T> cb);    public void go(int retryCount) {        showLoadingMessage();        execute(retryCount);    }    private void execute(final int retriesLeft) {        callService(new AsyncCallback<T>() { public void onFailure(Throwable t) {     GWT.log(t.toString(), t);     if (retriesLeft <= 0) {         hideLoadingMessage();         AsyncCall.this.onFailure(t);     } else {         execute(retriesLeft - 1);     } } public void onSuccess(T result) {     hideLoadingMessage();     AsyncCall.this.onSuccess(result); }        });    }    public void onFailure(Throwable t) {        // standard error handling    }    ...}

要进行呼叫,请执行以下 *** 作:

new AsyncCall<DTO>() {    protected void callService(AsyncCallback<DTO> cb) {        DemoService.App.get().someService("bla", cb);    }    public void onSuccess(DTO result) {        // do something with result    }}.go(3); // 3 retries

您可以使用代码扩展它,以检测花费很长时间的呼叫并显示某种繁忙指示等。



欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5488725.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-13
下一篇2022-12-12

发表评论

登录后才能评论

评论列表(0条)

    保存