1. 文件同步与异步
Node.js 默认采用异步方式读取文件。使用 fs.readFile 时,回调函数会在读取完成后执行:
var fs = require('fs');
fs.readFile('file.txt', 'utf-8', function(err, data) {
if (err) {
console.error(err);
} else {
console.log(data);
}
});
console.log('end.');
运行结果中,end. 会先于文件内容输出,因为读取操作是异步的。若需要同步读取,可使用 readFileSync:
var data = fs.readFileSync('file.txt', 'utf-8');
注意:Node.js 并非所有 API 都提供同步和异步版本,且应尽量避免使用同步 API,以免阻塞事件循环。
2. 事件机制
Node.js 基于事件驱动模型,通过 EventEmitter 实现:
var EventEmitter = require('events').EventEmitter;
var event = new EventEmitter();
event.on('some_event', function() {
console.log('some_event occured.');
});
setTimeout(function() {
event.emit('some_event');
}, );


