我有一个 Node 函数来检查文件是否存在,如果它确实存在,该函数会做一些进一步的处理。我的问题是 Node 正在检查我的文件是否存在,但它没有等待文件完成写入。在执行我的函数的其余部分之前,如何查看文件是否退出并等待文件完成写入?
var doStuff = function(filename, callback) {
// writing to file here
fs.exists(filename, function(exists) {
if (exists) {
// do stuff
callback()
}
});
});
Run Code Online (Sandbox Code Playgroud)
我看到有一个同步版本的fs.exists. 我应该用那个吗?或者我应该添加一个 setTimeout 调用来等待一小段时间,然后再在文件上执行动作?什么选择最好?
只需将其放入您的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()
}
});
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7835 次 |
| 最近记录: |