2012-05-16 41 views
2

發出事件,我在node.js的以下模塊:的Node.js - 從對象

var obj = {}; 
obj.prop1 = "value1"; 
obj.prop2 = "value2"; 

asyncFunction(function(data) { 
    obj.prop3 = data; 
    // I would like to do: obj.emit("completed"); 
}); 

module.exports = obj; 

所以我可以進口,如:

var imp = require('./obj'); 

imp.on("completed", function() { 
    console.log("Hello!"); 
}); 

我該怎麼辦呢?

回答

3

您將需要使objEventEmitter。這可以非常簡單地完成 - 只是改變這一點:

var obj = {}; 

要這樣:

var EventEmitter = require('events').EventEmitter; 
var obj = new EventEmitter(); 
+2

如果你需要做一個*類*即EventEmitter,它是[本文在闡述了( http://howtonode.org/demystifying-events-in-node)。 – Amadan

+0

如果你願意,你可以這樣做,但並非嚴格要求。您可以創建通用的EventEmitter並通過通常的'on'和'emit' API方法與它們交互。 – jmar777

+0

哎呀..只是看到了「如果」。我以爲你在斷言它是必要的。所以是的,完全同意該聲明:) – jmar777