function sendUpdate() { if (!closed) { stream.emit('data', self.data) if (self.closed) { stream.close() } } }
stream.close = function() { console.log("Simple model: closing stream") if (!closed) { closed = true self.listenable.off('update', sendUpdate) self.listenable.off('close', onClose) stream.emit('close') } }
process.nextTick(function() { if (!closed) { stream.emit('data', self.data) stream.close() } })
stream.close = function() { closed = true stream.emit('close') }