nodejs以同步方式创建目录是不可靠的



我使用以下代码以同步方式创建目录。它检查目录是否存在,如果存在则删除并创建。所有操作都是同步的。我循环这个操作5次。我每次都得到不同的结果。有时它只创建4个目录,有时它会创建全部5个目录。代码中出现这种不稳定的原因是什么?

fs.readdir(dir, function(err, filenames) {
if (err) {
onError(err);
return;
}
filenames.forEach(function(filename) {
fs.readFile(dir + filename, 'utf-8', function(err, content) {
if (err) {
onError(err);
return;
}
AsyncFunc(content, ....)
.then(newContent => {
filenames.forEach(function(filename) {
if (fs.existsSync(currentDirName)) {
fs.rmdirSync(currentDirName);
}
fs.mkdirSync(currentDirName, '0766');
});
});
});

如果使用同步函数,则不能使用回调。此外,如果你想删除一个文件夹,你需要使用rmdirSync(filename);

var fs = require('fs');
var filenames = ['1','2','3','4'];
filenames.forEach(function(filename) {
if (fs.existsSync(filename)) {
fs.rmdirSync(filename);
}
fs.mkdirSync(filename, '0766');
});

最新更新