我正在使用vm2在Node中运行一些沙盒代码。
正在运行的代码将大部分是异步的。它是不受信任的代码,并且不能以任何方式依赖它,因此,我为什么vm2要运行它。
vm2是否可以结束当前正在执行的任何代码?该文档非常有限。例如,如果我要使用以下代码:
var code = 'setInterval(function(){ console.log("tick"); }, 1000);'
vm.run(code);
Run Code Online (Sandbox Code Playgroud)
我有什么办法可以运行上述代码,并在将来的某个时候将其停止,而控制代码不必了解的内容code,也不必code提供任何特定功能?
我找不到vm.stop()方法或类似方法。
不幸的是,没有办法中断在VM中运行的代码的执行。vm2库基于Node的VM模块,该模块不提供任何方法来中断在沙箱中运行的代码。至少在撰写本文时并非如此。
您唯一可以限制的是任何同步执行的持续时间。
免责声明:我是vm2库的作者。