我正在尝试从数组列表中提取大约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)
}
});
})
});
};
但是这段代码并行启动所有提取文件。
我怎样才能一次提取一个?
你可以在这里使用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
}
})
谢谢你,工作正常但是这样:
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
});
});
删除每个系列中的')'并输入“function(err,result)”