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的实现不幸地不包括这些。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |