0
Ich erstelle ein beobachtbares Muster in Knoten wie folgt.Funktion Prototyp Knoten funktioniert nicht
./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;
};
Da ist in meinem route.js
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);
});
Jetzt Datei, wenn es um tableEvent.startTimer versucht(); Ich bekomme diesen Fehler in der Konsole
tableEvent.startTimer is not a function
Warum ist das?
Wenn Sie den Prototyp Überschreibung festgelegt haben, feststellen, dass [die 'this' im' setTimeout' Rückruf wird nicht funktionieren] (http://stackoverflow.com/q/20279484/1048572) – Bergi
Danke, ich habe var self = this; – Garuuk