等待文件在Node.js中处理之前完成写入磁盘

时间:2014-08-20 23:30:27

标签: node.js

我有一个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之前的一小段时间?什么选择最好?

1 个答案:

答案 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()
    }
  });

});