1. 程式人生 > >Nodejs 之非阻塞 I/O、異步、事件驅動

Nodejs 之非阻塞 I/O、異步、事件驅動

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是一個異步,或者是非阻塞式IO
console.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、異步、事件驅動