小编thw*_*lms的帖子

Node.js异步文件I/O.

我是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上,如果这有任何区别.

javascript asynchronous node.js

4
推荐指数
1
解决办法
782
查看次数

标签 统计

asynchronous ×1

javascript ×1

node.js ×1