我有一个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之前的一小段时间?什么选择最好?
答案 0 :(得分:2)
将它扔进你的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()
}
});
});