调用asynchonours文件系统操作的顺序是否保证与它们在文件系统上实际执行的顺序相同。
e.g。
// foo.tmp exists
fs.exists('foo.tmp', (err, value) => console.log(value))
fs.unlink('foo.tmp')
true
是否保证是输出?
答案 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之前执行。正确的方法 这样做是为了链接回调。