Есть ли способ ограничить глубину рекурсии в NodeJS, кроме опции --stack-size
?
Я знаю, что NodeJS позволит вам контролировать размер стека вызовов с помощью опции --stack-size
. то есть такая программа
const recurse = (num=0) => {
context.num++
recurse(++num)
}
const context = {
num:0
}
try {
recurse(context)
} catch(e) {
console.log('Took ' + context.num + ' trips before bailing')
}
будет выводить что-то подобное по умолчанию.
$ node so.js
Took 12530 trips before bailing
Однако вы можете использовать --stack-size
, чтобы сообщить узлу, насколько велик размер стека. получить (в кб) перед спасением. Используйте больший стек, вы получите больше рекурсии.
$ node --stack-size=5000 so.js
Took 63935 trips before bailing
Опция --stack-size
является одной из опций Node V8. Вы можете увидеть список всех этих опций, запустив node --v8-options
.
. Я хочу знать, есть ли способ в NodeJS явно ограничить глубину рекурсии некоторым указанным c числом.
У меня нет конкретной конечной цели c здесь - я просто пытаюсь понять, что инструменты NodeJS делают и не имеют по сравнению с другими языками, на которых я работаю. Это нормально, если у узла этого нет - я просто учусь здесь:)