tutorial loop for javascript-events node.js coffeescript

javascript events - loop - Desenlazar eventos en Node.js



coffeescript vs typescript (2)

Tomemos stdin.on como ejemplo. Devolución de stdin.on a stdin.on stack, así que si escribo (en CoffeeScript)

stdin = process.openStdin() stdin.setEncoding ''utf8'' stdin.on ''data'', (input) -> console.log ''One'' stdin.on ''data'', (input) -> console.log ''Two''

luego, cada vez que pulso retorno en el indicador, recibo

One Two

Mi pregunta es, ¿hay alguna manera de eliminar / reemplazar una devolución de llamada una vez enlazada? ¿O es el único enfoque para enlazar una devolución de llamada de proxy y administrar el estado por mí mismo?


O puedes usar:

stdin.once lugar de stdin.on


Puede usar removeListener(eventType, callback) para eliminar un evento, que debería funcionar con todo tipo de emisores.

Ejemplo de la documentación de la API:

var callback = function(stream) { console.log(''someone connected!''); }; server.on(''connection'', callback); // ... server.removeListener(''connection'', callback);

Por lo tanto, debe tener una variable que contenga una referencia a la devolución de llamada, ya que, obviamente, es imposible decir qué devolución de llamada desea eliminar.

EDITAR
Debería ser alguien así en CS:

stdin = process.openStdin() stdin.setEncoding ''utf8'' logger = (input) -> console.log ''One'' stdin.on ''data'', logger stdin.removeListener ''data'', logger stdin.on ''data'', (input) -> console.log ''Two''

Consulte: http://nodejs.org/docs/latest/api/events.html#emitter.removeListener