我正在尝试制作一个不定式循环,该循环在视频上传时停止。该函数工作正常,但是停止循环似乎不起作用。我得到的错误是:清除未定义中介这是我试图做的循环:window.setImmediate = window.setTimeout; //had to add this for it to start the loopvar videoIsUploaded = false;var immediateId;function loop() { console.log('still uploading'); immediateId = setImmediate(loop); if (videoIsUploaded == true) { window.clearImmediate(immediateId); HideTheUpload(); }}loop();function HideTheUpload(){ document.getElementById("AddVideo").style.display = "none";}Azure 上传视频后,它会设置“视频已上传 = true”,这一切正常,并且“如果(视频已上传...”)。火灾
2 回答
翻阅古今
TA贡献1780条经验 获得超5个赞
您应该只使用设置超时
和清除超时
。
您的问题的核心似乎是您想要使用 。这是一种非标准方法,似乎在网络上没有被广泛采用。请参阅 MDN 站点以获取以下信息:setImmediate
此功能是非标准的,不在标准轨道上。不要在面向 Web 的生产站点上使用它:它不适用于每个用户。实现之间也可能存在很大的不兼容性,并且行为可能会在将来发生变化。
和
此方法预计不会成为标准,并且仅由ie浏览器和Node的最新版本实现.js 0.10 +。它遇到了来自壁虎(火狐)和网络套件(谷歌/苹果)的阻力。
看起来这被设计成像一个异步CPU绑定的操作,但webkit和Mozilla不同意这个实现,所以它自2011年以来一直在萎靡不振。
它已在节点.js中实现。这几乎肯定在节点.js应用程序中比在Web上下文中更有意义,我假设这就是node采用它的原因。我还假设您从节点.js链接中获取此代码?
我猜这就是你为什么要这样做的原因。但这大多是毫无意义的。您应该只使用 和 。window.setImmediate = window.setTimeout;
setTimeout
clearTimeout
BTW确实存在,但它又是非标准的,没有得到很好的支持。clearImmediate
紫衣仙女
TA贡献1839条经验 获得超15个赞
在脚本中没有名为 的函数。clearImmediate
相反,要清除超时,则有 。clearTimeout
所以
用
window.clearTimeout(immediateId);
而不是
window.clearImmediate(immediateId);
添加回答
举报
0/150
提交
取消