You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何出现clearImmediate is not defined错误?视频上传循环停止失败

问题分析与解决方案

你遇到的clearImmediate is not defined报错根源很清晰:你只把window.setImmediate映射成window.setTimeout来启动循环,但没有给clearImmediate做对应的映射——多数现代浏览器没有原生的clearImmediate方法,调用它自然会报错。

另外你的循环逻辑还有个小瑕疵:你先调用setImmediate(loop)再判断是否停止,这会导致即使videoIsUploaded已经为true,当前这一次调用已经触发了下一轮循环,可能会多打印一次still uploading。

修正后的完整代码

// 同时映射setImmediate和clearImmediate到setTimeout/clearTimeout
window.setImmediate = window.setTimeout;
window.clearImmediate = window.clearTimeout;

var videoIsUploaded = false;
var immediateId;

function loop() {
  console.log('still uploading');
  
  // 先判断上传状态,再决定是否开启下一轮循环
  if (!videoIsUploaded) {
    immediateId = setImmediate(loop);
  } else {
    HideTheUpload();
  }
}

loop();

function HideTheUpload(){
  document.getElementById("AddVideo").style.display = "none";
}

关键修改点

  • 新增window.clearImmediate = window.clearTimeout;:既然用setTimeout模拟了setImmediate的行为,清除时必须用对应的clearTimeout来匹配。
  • 调整循环逻辑顺序:先检查上传状态,再决定是否继续循环,避免不必要的多余执行。

这样当Azure完成上传设置videoIsUploaded = true后,循环会在当前轮次结束后正常停止,同时不会再抛出clearImmediate未定义的错误。

内容的提问来源于stack exchange,提问作者Ewald Bos

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.07 22:22:29