2017-08-18 98 views
0

我有兩個類,我希望一個類可以訂閱另一個類。所以 這樣的事情。Node.js監聽併發送事件

類別之一:

while(1){ if(true){ //emmit some event }

類二:

//wait for class one to emmit some data ,and then start working with the data

我的問題是,有沒有什麼方法,模塊..這可以幫助我實現了這個行爲?

+0

什麼問題? – tbking

+0

我想你實際上指的是線程不是類,類是對象模板,node.js是單線程的,它是異步的,所以你可以創建你想要的功能,但不是在這樣的while循環中,你必須釋放執行回到節點或節點的異步部分不能工作。 – SPlatten

+0

@tbking編輯我的帖子,對不起 – DavidS

回答

0

使用節點的內置EventEmitter在兩個客戶端實現發射和偵聽事件。

例子:

const EventEmitter = require('events'); 

class MyEmitter extends EventEmitter {} 

const myEmitter = new MyEmitter(); 
myEmitter.on('event',() => { 
    console.log('an event occurred!'); 
}); 
myEmitter.emit('event'); 
+0

我有1函數檢查SQL基礎並返回true,false。我需要在哪裏調用這個函數? – DavidS

+0

在該函數的回調函數中,調用myEmitter.emit('SQL_RESULT');'。在一個文件中定義myEmitter並導入它。 – tbking

0

缺省類EventEmitter會做你所要求的。

const myEmitter = new MyEmitter(); 

// Listen to event 
myEmitter.on('event', (data) => { 
    console.log(data); 
}); 

// Emit event 
myEmitter.emit('event', data);