[英]Why am I getting the error clearImmediate is not defined?
我正在嘗試制作一個在上傳視頻時停止的不定式循環。 function 工作正常,但停止循環似乎不起作用。 我得到的錯誤是:
clearImmediate 未定義
這是我想要做的循環:
window.setImmediate = window.setTimeout; //had to add this for it to start the loop
var 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 上傳了視頻,它就會設置“videoIsUploaded = true”,這一切都很好,“if (videoIsUploaded ...”就會觸發
鉈;博士
您應該只使用setTimeout
和clearTimeout
。
您的問題的關鍵似乎是您想使用setImmediate
。 這是一種非標准方法,在 web 中似乎並未廣泛采用。 請參閱MDN 站點:
此功能是非標准的,不在標准軌道上。 不要在面向 Web 的生產站點上使用它:它不適用於每個用戶。 實現之間也可能存在很大的不兼容性,並且行為可能會在未來發生變化。
和
此方法預計不會成為標准,僅在 Internet Explorer 和 Node.js 0.10+ 的最新版本中實現。 它遇到了 Gecko (Firefox) 和 Webkit (Google/Apple) 的阻力。
看起來這被設計為像異步 CPU 綁定操作一樣工作,但 webkit 和 Mozilla 不同意該實現,因此自 2011 年以來它一直在萎靡不振。
它已在 node.js 中實現。 這幾乎肯定在 node.js 應用程序中比在 web 上下文中更有意義,我想這就是節點采用它的原因。 我還假設您從 node.js 鏈接獲得此代碼?
我猜這就是為什么你要做window.setImmediate = window.setTimeout;
. 但這大多是沒有意義的。 您應該只使用setTimeout
和clearTimeout
。
BTW clearImmediate
確實存在,但它又是非標准的並且沒有得到很好的支持。
在名為clearImmediate
。
除了清除超時,還有clearTimeout
。
所以,
利用
window.clearTimeout(immediateId);
代替
window.clearImmediate(immediateId);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.