加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

angularjs – 如何检查Angular $q promise是否已解决

发布时间:2020-12-17 09:08:10 所属栏目:安全 来源:网络整理
导读:我理解,通常只使用一个then()调用和链行为时使用promises的附加连续代码。 但是,我想启动一个promise封装的异步调用,然后单独启动3秒$ timeout(),所以我可以采取UI操作,只有如果原始promise尚未完成。 (我预计这只会发生在缓慢的连接,3G上的移动设备等
我理解,通常只使用一个then()调用和链行为时使用promises的附加连续代码。

但是,我想启动一个promise封装的异步调用,然后单独启动3秒$ timeout(),所以我可以采取UI操作,只有如果原始promise尚未完成。 (我预计这只会发生在缓慢的连接,3G上的移动设备等)

给定一个承诺,我可以检查它是否完整或没有阻塞或等待?

我认为你最好的选择是,(不修改Angular源和提交拉请求)是保持一个局部标志,如果承诺已解决。每次你设置你感兴趣的承诺,并将其标记为完成在then()为原始的承诺重置它。在$ timeout然后()检查标志知道是否原始的承诺已经解决了还是没有。

这样的东西:

var promiseCompleted = false;
promise.then(function(){promiseCompleted=true;})
$timeout(...).then(function(){if(!promiseCompleted)doStuff()})

Kris Kowal的实现包括检查promise的状态的其他方法,但似乎Angular的$ q的实现不幸地不包括这些。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读