Ce code ne tient pas compte du délai d'attente et bloque le processus :
'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')
Et Promise ne peut pas être facilement désactivé : #74.
Lisezmoi.md
IMPORTANT : le délai d'attente n'est pas efficace pour NodeVM, il n'est donc pas à l'abri de while (true) {} ou d'un mal similaire.
@awiebe sauf que j'utilise VM
, pas NodeVM
.
Malheureusement, il s'agit d'une autre limitation de la fonctionnalité de délai d'attente du nœud - cela ne fonctionne pas pour les appels asynchrones, même s'ils s'exécutent dans le bac à sable.
Ce problème a été automatiquement marqué comme obsolète, car il n'a pas eu d'activité récente. Il sera fermé s'il n'y a plus d'activité. Merci pour vos contributions.