所以,我有一个应用程序来处理目录中的文件,我希望应用程序继续查看新文件的目录,如果发现它将处理它,所以基本上我所做的是再次调用main函数文件不可用,这将使我的应用程序运行,但我收到错误
错误 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();
});
}
答案 0 :(得分:0)
似乎每当它找不到它再次调用该函数时,你就会从中获得大量的堆栈溢出错误。你可以把它放在循环中并迭代地进行,这样就可以防止它出现这个错误。
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;
}
}`