我是Node.js的新手并且最近了解了该fs模块.我对异步与同步文件i/o有点困惑.
考虑以下测试:
var fs = require('fs');
var txtfile = 'async.txt';
var buffer1 = Buffer(1024);
var buffer2 = '1234567890';
fs.appendFile(txtfile, buffer1, function(err) {
if (err) { throw err };
console.log('appended buffer1');
});
fs.appendFile(txtfile, buffer2, function(err) {
if (err) { throw err };
console.log('appended buffer2');
});
Run Code Online (Sandbox Code Playgroud)
大约一半的时间我运行它,它打印appended buffer2之前appended buffer1.但是当我打开文本文件时,数据总是看起来是正确的顺序 - Buffer(1024)后面跟着一堆垃圾1234567890.我本来期待反向或乱七八糟的混乱.
这里发生了什么?难道我做错了什么?是否存在维持秩序的某种较低级别的i/o队列?
我已经看到一些关于与Node的文件系统i/o差异的讨论; 我在Mac上,如果这有任何区别.