为了账号安全,请及时绑定邮箱和手机立即绑定

为什么我收到错误清除未定义中介?

为什么我收到错误清除未定义中介?

茅侃侃 2022-09-23 21:48:29
我正在尝试制作一个不定式循环,该循环在视频上传时停止。该函数工作正常,但是停止循环似乎不起作用。我得到的错误是:清除未定义中介这是我试图做的循环: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;setTimeoutclearTimeout

BTW确实存在,但它又是非标准的,没有得到很好的支持。clearImmediate


查看完整回答
反对 回复 2022-09-23
?
紫衣仙女

TA贡献1839条经验 获得超15个赞

在脚本中没有名为 的函数。clearImmediate

相反,要清除超时,则有 。clearTimeout

所以

window.clearTimeout(immediateId);

而不是

window.clearImmediate(immediateId);


查看完整回答
反对 回复 2022-09-23
  • 2 回答
  • 0 关注
  • 85 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信