fs调用与副作用排序?

时间:2016-02-07 11:13:01

标签: javascript node.js

调用asynchonours文件系统操作的顺序是否保证与它们​​在文件系统上实际执行的顺序相同。

e.g。

// foo.tmp exists
fs.exists('foo.tmp', (err, value) => console.log(value))
fs.unlink('foo.tmp')

true是否保证是输出?

1 个答案:

答案 0 :(得分:1)

doc表示无法保证:

  

使用异步方法无法保证排序。所以   以下容易出错:

fs.rename('/tmp/hello', '/tmp/world', (err) => {
  if (err) throw err;
  console.log('renamed complete');
});
fs.stat('/tmp/world', (err, stats) => {
  if (err) throw err;
  console.log(`stats: ${JSON.stringify(stats)}`);
});
     

可能是fs.stat在fs.rename之前执行。正确的方法   这样做是为了链接回调。