是否有一种方法可以限制递归的深度,而不是--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来告诉节点您希望在退出之前让堆栈获得多大(以kb为单位)。使用更大的堆栈,您将得到更多的递归。
$ node --stack-size=5000 so.js
Took 63935 trips before bailing--stack-size选项是Node的V8选项之一。通过运行node --v8-options,您可以看到所有这些选项的列表。
我想知道的是,NodeJS中是否有一种方法可以显式地将递归深度限制在某个特定的数字上。
在这里,我没有一个具体的目标--我只是想了解NodeJS所做的工具,以及与我所使用过的其他语言相比没有的工具。如果node没有这个,没关系--我只是在这里学习:)
发布于 2020-04-23 16:43:21
根据我的研究,这似乎是不可能的。这是刚刚打开的功能请求在NodeJS存储库中可能有助于了解事情的真相。
https://stackoverflow.com/questions/61374279
复制相似问题