一.阻塞与非阻塞
阻塞是按顺序执行的。 有先后顺序。
input.txt文件内容是: 我是阻塞
var fs = require("fs");
var data = fs.readFileSync(‘input.txt‘);
console.log(data.toString());
console.log("程序执行结束!");
输出结果是:
我是阻塞
程序执行结束!
而非阻塞是不需要按顺序的,所以如果需要处理回调函数的参数,我们就需要写在回调函数内。
input.txt文件内容是: 我是非阻塞
var fs = require("fs"); fs.readFile(‘input.txt‘, function (err, data) { if (err) return console.error(err); console.log(data.toString()); }); console.log("程序执行结束!");
输出结果是:
程序执行结束!
我是非阻塞
二.事件
// 引入 events 模块 var events = require(‘events‘); // 创建 eventEmitter 对象 var eventEmitter = new events.EventEmitter();
********************************************* //1. 创建事件处理程序 var connectHandler = function connected() { console.log(‘连接成功。‘); } //2. 绑定 connection 事件处理程序 eventEmitter.on(‘connection‘, connectHandler); //3. 触发 connection 事件 eventEmitter.emit(‘connection‘); *********************************************
*注意分割线内的书写顺序,否则会失败!
当然:创建事件处理程序可以不用 放在2中
console.log("程序执行完毕。");