如何等待承诺/脚本。onload执行时没有:.then(), .catch(), await/async和回调IE11。与cpp上的Sleep(100)相当。如果我执行循环'while(loadFlag == false);'并检查标志是否已更改,则浏览器会挂起并停止响应。我想达到这样的效果:
ScriptLoad(script);
functionFromLoadedScript();
但是我不能做这个…请帮忙解决这个问题
如果你有一个状态标志,你可以使用setInterval
轮询状态。
https://developer.mozilla.org/en-US/docs/Web/API/setInterval
ScriptLoad(script);
var intervalID = setInterval(function () {
if (loadFlag === true) {
clearInterval(intervalID);
functionFromLoadedScript();
}
}, 100);
你也可以在IE中加载Promise
填充库,这样你就可以使用then
/catch
。async
/await
不是必需的。承诺也可以通过链接来实现。如果你真的想使用async
/await
,你可以使用TypeScript
来瞄准ES5
。TypeScript
可以将async
/await
转换为使用Promise
的等效代码,并在IE中运行。要做到这一点,你必须以ES5为目标,并且必须在IE中加载Promise
多边形库。
很遗憾,这是不可能的。