Vm2: Promise.then 中的无限循环挂起整个过程

创建于 2018-01-12  ·  4评论  ·  资料来源: patriksimek/vm2

此代码忽略超时并挂起进程:

'use strict'

const {VM} = require('vm2')

const vm = new VM({
    timeout: 5000,
})

console.log('Runs')

vm.run('Promise.resolve(42).then(() => {while(true) {}})') // hangs the process

setImmediate(console.log, 'Will never run')

并且 Promise 不能轻易被禁用:#74。

stale

所有4条评论

自述文件.md

重要提示:超时对 NodeVM 无效,因此它不能免疫 while (true) {} 或类似的邪恶。

@awiebe除了,我使用的是VM ,而不是NodeVM

不幸的是,这是节点超时功能的另一个限制——它不适用于异步调用,即使它们在沙箱中运行。

此问题已自动标记为过时,因为它最近没有活动。 如果没有进一步的活动,它将被关闭。 感谢你的贡献。

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

patriksimek picture patriksimek  ·  5评论

ozsay picture ozsay  ·  5评论

keyosk picture keyosk  ·  64评论

somebody1234 picture somebody1234  ·  4评论

ghost picture ghost  ·  23评论