1. 程式人生 > >node筆記-回撥及 events 模組處理非同步

node筆記-回撥及 events 模組處理非同步

NodeJS通過非阻塞 I/O、事件驅動機制,讓 Node.js 程式巨集觀上也是並行的,當用戶連線了,觸發一個內部事件,通過非同步返回結果。

NodeJS可以使用回撥函式和事件驅動來進行非同步結果的處理。

function getData (){ 
    // 模擬請求資料     
    var result=''; 
 
    setTimeout (function(){
         
        result='這是請求到的資料' 
 
    },200);
     
    return result; 
} 
 
console .log( getData ()); /* 非同步導致請求不到資料 */
 

解決方法一:回撥函式

/ / 正確的處理非同步 : 
function getData (callback){     
// 模擬請求資料     

    var result='';
     
    setTimeout (function(){

        result='這是請求到的資料';
 
        callback(result);
     
    },200); 
} 

getData (function( data ){
 
    console.log(data) ;
 
})
 

解決方法二: events 模組

var events = require('events');

var EventEmitter = new events.EventEmitter();

EventEmitter.on('to_spread',function(data){
    console.log(data);//接受廣播
});

setTimeout(function(){

    console.log('開始傳送廣播');

    EventEmitter.emit('to_spread');
    
},1000)