Este código desconsidera o tempo limite e trava o processo:
'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')
E a Promise não pode ser facilmente desabilitada: #74.
Leiame.md
IMPORTANTE: o tempo limite não é eficaz para o NodeVM, portanto, não é imune a while (true) {} ou mal semelhante.
@awiebe exceto, estou usando VM
, não NodeVM
.
Infelizmente, essa é outra limitação do recurso de tempo limite do nó - ele não funciona para chamadas assíncronas, mesmo se estiverem em execução na sandbox.
Este problema foi marcado automaticamente como obsoleto porque não teve atividade recente. Será fechado se não ocorrer mais nenhuma atividade. Obrigado por suas contribuições.