1

我正在使用vm2在 Node 中运行一些沙盒代码。

正在运行的代码将主要是异步的。它是不受信任的代码,不能以任何方式依赖它——因此我使用vm2它来运行它。

vm2 是否有办法结束当前正在执行的任何代码?文档非常有限。例如,如果我有这个代码:

var code = 'setInterval(function(){ console.log("tick"); }, 1000);'
vm.run(code);

code有没有什么办法可以运行上面的代码,并在将来的某个时候停止它,而控制代码不必知道任何关于code.

我找不到vm.stop()方法或类似方法。

4

1 回答 1

6

不幸的是,没有办法中断在 VM 中运行的代码的执行。vm2 库基于 Node 的 VM 模块,它不提供任何方法来中断在沙箱中运行的代码。至少在写这篇文章的时候不是。

您唯一可以限制的是任何同步执行的持续时间。

免责声明:我是作者 vm2 库。

于 2017-02-10T22:43:46.890 回答