如何停止JavaScript评估

问题描述 投票:0回答:1

我想从字符串中运行一些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才能将其停止?

谢谢!

javascript eval
1个回答
0
投票

@ Keith的评论是对此问题的最佳答案。

© www.soinside.com 2019 - 2024. All rights reserved.