Skip to content

Instantly share code, notes, and snippets.

@Raynos

Raynos/event.js Secret

Created August 22, 2013 00:04
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Raynos/106852be0ac9d7e10172 to your computer and use it in GitHub Desktop.
Save Raynos/106852be0ac9d7e10172 to your computer and use it in GitHub Desktop.
/*
function Server() {
var server = {}
server.accept = Event()
handle.onsocket = function (socket) {
server.accept.emit(socket)
}
return server
}
function Socket(handle) {
var socket = {}
socket.connect = Event()
handle.onconnect = function () {
socket.connect.emit()
}
return socket
}
*/
module.exports = Event
function Event() {
var listeners = []
listen.emit = function (value) {
listeners.forEach(function (f) {
f(value)
})
}
return listen
function listen(listener) {
listeners.push(listener)
return function remove() {
listeners.splice(listeners.indexOf(listener), 1)
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment