我有一个Node函数,它检查文件是否存在,然后如果它存在,该函数会进行一些进一步的处理.我的问题是Node正在检查我的文件是否存在,但它并没有等待文件完成写入.在执行函数的其余部分之前,如何查看文件是否退出并等待文件完成写入?
var doStuff = function(filename, callback) {
// writing to file here
fs.exists(filename, function(exists) {
if (exists) {
// do stuff
callback()
}
});
});
我看到fs.exists有一个同步版本.我应该用吗?或者我应该添加一个setTimeout调用来等待文件上的actin之前的一小段时间?什么选择最好?
最佳答案 把它扔进你的fs.writeFile回调中.一定要检查错误,可能会省去调用fs.exists的麻烦:
fs.writeFile(filename, "stuff to write", function (err) {
if (err) {
// something went wrong, file probably not written.
return callback(err);
}
fs.exists(filename, function(exists) {
if (exists) {
// do stuff
callback()
}
});
});