我想从字符串中运行一些JS代码,并且我想为此代码设置超时,或者在eval发生异常的情况下停止eval。
我的代码:
function run_code() {
let code = editor.getValue();
eval.call(null, code);
}
如果我在代码中放入无限循环,浏览器将永远冻结:
function run_code() {
let code = "while (true) { console.log('Q'); }";
eval.call(null, code);
}
是否可以通过超时调用eval或使用JS杀死现有eval?如果需要,如何正确调用eval才能将其停止?
谢谢!
@ Keith的评论是对此问题的最佳答案。