我正在使用要传递的参数和回调函数调用函数scandir()
。一旦该函数完成,我称之为回调,但是我得到callback is not a function
。我不明白我哪里出错了,任何帮助都会受到赞赏。
脚本文件:
scan_dir(working_dir, function(items){
console.log('done');
dir_items = items;
console.log('items', dir_items);
});
函数文件:
var scan_dir_count = 0;
function scan_dir(path, callback){
scan_dir_count++;
fs.readdir(path, function(err, files){
files.forEach(function(item, index){
//console.log(index, item);
if (fs.lstatSync(path + '/' + item).isDirectory()){
files.push(path + '/' + scan_dir(path + '/' + item));
}
});
scan_dir_count--;
if (scan_dir_count == 0){
console.log('end');
callback(files);
}
});
}
感谢。
编辑:已更新至4castles响应。不再返回任何错误,但回调函数似乎没有触发...
var scan_dir_count = 0;
function scan_dir(path, callback){
scan_dir_count++;
fs.readdir(path, function(err, files){
files.forEach(function(item, index){
//console.log(index, item);
if (fs.lstatSync(path + '/' + item).isDirectory()){
scan_dir(path + '/' + item, function(data){ files.push(item + '/' + data); });
}
});
scan_dir_count--;
if (scan_dir_count == 0){
console.log('end');
console.log(files);
callback(files);
}
});
}
答案 0 :(得分:0)
你确定该功能不会触发吗?我给了一个示例文件夹的地址,它似乎工作正常:
我得到了这个回复:
端 [' config.html',' config.html~',' config.js',' config.js~' ] DONE 项目[' config.html',' config.html~',' config.js',' config.js~' ]