栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

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

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

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

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

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



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/496603.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号