我试图从数组列表中提取大约100个文件的列表,但我要逐个提取。
fs.readdir(config.tmp_directory, function(error, files){
if (error) {
return callback(error)
}
count_file = files.length
files.map(function(file){
targz.decompress({
src: config.tmp_directory + "/" + file,
dest: config.extract_directory + "/"
}, function(err){
if(err) {
log_erreur.push(file)
return count_err = count_err + 1;
}
console.log("file : " + config.extract_directory + "/" + file + " Done!");
count_succes = count_succes + 1;
if (count_succes + count_err == count_file) {
process.stdout.write("\n")
process.stdout.cursorTo(0);
process.stdout.write("Extract Sequency Finished...");
process.stdout.write("\n")
return callback(null,"next", log_erreur)
}
});
})
});
};
但是此代码并行启动所有提取文件。
我如何一次提取一个?
答案 0 :(得分:0)
您可以使用async npm模块 这里。
fs.readdir(config.tmp_directory, function(item, files){
if (error) {
return callback(error)
}
count_file = files.length
async.eachSeries(files,function(item, innercb){
// do here with item
console.log(item)
innercb()
}), function(err, result){
// after finish all files you can call here final callback
// main callback
}
})
答案 1 :(得分:0)
谢谢你,工作正常,但就是这样:
fs.readdir(config.tmp_directory, function(item, files){
if (error) {
return callback(error)
}
count_file = files.length
async.eachSeries(files,function(item, innercb){
// do here with item
console.log(item)
innercb()
}, function(err, result){
// after finish all files you can call here final callback
// main callback
});
});
删除')'在每个系列中并放入"功能(错误,结果)"