I'm creating an observable pattern in node like this.
./tableEvents.model.js
var EventEmitter = require('events').EventEmitter;
var util = require('util');
module.exports = function(logger){
function TableEvent(tableId){
this.tableId = tableId;
EventEmitter.call(this);
}
TableEvent.prototype.startTimer = function(){
this.timer = setTimeout(function(){
console.log('been 5 seconds, destroying');
this.emit('destroy');
}, 5000);
};
util.inherits(TableEvent, EventEmitter);
return TableEvent;
};
Then in my route.js file
var TableEvent = require('../models/tableEvents.model')(logger);
var tableEvent = new TableEvent(table._id);
tableEvent.startTimer();
tableEvent.on('destroy', function(){
console.log('destroyed');
clearInterval(tableEvent.timer);
});
Now when it tries to tableEvent.startTimer(); I get this error in console
tableEvent.startTimer is not a function
Why is this?