Nodejs 之非阻塞 I/O、異步、事件驅動
阿新 • • 發佈:2019-02-18
console class ack 接收 ring cal lba node events
1、非阻塞 I/O
var fs = require(‘fs‘); console.log(‘1‘); fs.readFile(‘mime.json‘,function (err,data) {//readFile是一個異步,或者是非阻塞式IO console.log(‘2‘); }) console.log(‘3‘);
2、函數封裝
//封裝
function getData() { fs.readFile(‘io/mime.json‘, function (err, data) {//readFile是一個異步,或者是非阻塞式IOconsole.log(data.toString()); }); }
//調用 getData();
3、回調函數處理異步
var fs=require(‘fs‘); function getMime(callback){ //callback為回調函數 fs.readFile(‘io/mime.json‘,function(err,data){ callback(data); //相當於將function(result)傳入函數內 }) } getMime(function(result){//function(result)為回調函數 console.log(result.toString()); })
4、事件驅動(消息訂閱系統)
// 引入 events 模塊 var events = require(‘events‘); var EventEmitter=new events.EventEmitter(); /*實例化事件對象*/ EventEmitter.on(‘toparent‘,function(){//訂閱消息 console.log(‘接收到了消息‘); }) setTimeout(function(){ console.log(‘廣播‘); EventEmitter.emit(‘toparent‘); /*發布消息*/ },1000)
Nodejs 之非阻塞 I/O、異步、事件驅動