所以,我有一个处理目录中文件的应用程序,我希望应用程序继续查看目录中的新文件,如果找到它就会处理它,所以基本上我所做的是当文件不可用时再次调用主函数,这将使我的应用程序保持运行,但我收到错误
错误 RangeError:超出最大调用堆栈大小
这是我的代码片段`在此处输入代码
function main(){
const names = scan_dir();
if(names.length <= 0){
console.log("nothing found in stage directory");
main();
return;
}else{
console.log(names.length.toString(), "files found");
}
// Do something
}
function scan_dir(){
const names = fs.readdirSync(STAGE_PATH)`enter code here`;
return names.filter(name => {
const abs_name = path.join(STAGE_PATH, name);
const stats = fs.statSync(abs_name);
return stats.isFile();
});
}
最佳答案
似乎每当它找不到它再次调用该函数时,您都会从中得到一个巨大的堆栈溢出错误。您可以将其放入循环中并迭代执行,这将防止出现此错误。
search = true
while(search){
names = scan_dir();
if(names.length <= 0){
console.log("nothing found in stage directory");
}else{
console.log(names.length.toString(), "files found");
search = false;
}
}`
关于node.js - Node JS - 递归调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49968406/