Я играю с узлом/javascript. Это всего лишь простой код, логика не важна, просто играя с EventEmitter. Может кто-то, пожалуйста, скажите мне, что я делаю неправильно с точки зрения кода, а не логики.Узел/Javascript с раскрывающимся шаблоном модуля
Спасибо за помощь.
var emitter = require('events').EventEmitter;
var http = require('http');
function github()
{
var emitterInstance = new emitter();
this.getEmitter = function()
{
console.log('returning the emitterInstance');
return emitterInstance;
};
this.getData = function()
{
http.get("https://api.github.com/users/loneshark99/gists", function(error,resp)
{
if(error)
{
console.log('Error occured!');
}
else
{
emitterInstance.emit('dataReceived');
}
});
};
return {
emt : getEmitter,
getData : getData
};
}
var g = new github();
g.emt().on("dataReceived", function() { console.log('data received from github')})
g.getData();
Ошибка:
D:\test.js:33
getData : getData
^
SyntaxError: Unexpected token :
at exports.runInThisContext (vm.js:73:16)
at Module._compile (module.js:443:25)
at Object.Module._extensions..js (module.js:478:10)
at Module.load (module.js:355:32)
at Function.Module._load (module.js:310:12)
at Function.Module.runMain (module.js:501:10)
at startup (node.js:129:16)
at node.js:814:3
Ответ :: Это работает
var emitter = require('events').EventEmitter;
var http = require('http');
function github()
{
var emitterInstance = new emitter();
this.getEmitter = function()
{
console.log('returning the emitterInstance');
return emitterInstance;
};
this.getData = function()
{
http.get("http://pluralsight.com", function(resp)
{
emitterInstance.emit('dataReceived');
});
};
var obj = { emt : getEmitter, getData : getData };
return obj;
}
var g = github();
console.log(g);
g.emt().on("dataReceived", function() { console.log('data received from github')})
g.getData();
Что заставляет вас думать, что это неправильно? что не работает? –
Typo? 'g.getEmitter.On' должен быть' g.emt.On' – PSL
@PSL исправил это, но это не проблема – Ben