1 # Emitter [![Build Status](https://travis-ci.org/component/emitter.png)](https://travis-ci.org/component/emitter)
\r
3 Event emitter component.
\r
8 $ component install component/emitter
\r
15 The `Emitter` may also be used as a mixin. For example
\r
16 a "plain" object may become an emitter, or you may
\r
17 extend an existing prototype.
\r
19 As an `Emitter` instance:
\r
22 var Emitter = require('emitter');
\r
23 var emitter = new Emitter;
\r
24 emitter.emit('something');
\r
30 var Emitter = require('emitter');
\r
31 var user = { name: 'tobi' };
\r
34 user.emit('im a user');
\r
37 As a prototype mixin:
\r
40 var Emitter = require('emitter');
\r
41 Emitter(User.prototype);
\r
44 ### Emitter#on(event, fn)
\r
46 Register an `event` handler `fn`.
\r
48 ### Emitter#once(event, fn)
\r
50 Register a single-shot `event` handler `fn`,
\r
51 removed immediately after it is invoked the
\r
54 ### Emitter#off(event, fn)
\r
56 * Pass `event` and `fn` to remove a listener.
\r
57 * Pass `event` to remove all listeners on that event.
\r
58 * Pass nothing to remove all listeners on all events.
\r
60 ### Emitter#emit(event, ...)
\r
62 Emit an `event` with variable option args.
\r
64 ### Emitter#listeners(event)
\r
66 Return an array of callbacks, or an empty array.
\r
68 ### Emitter#hasListeners(event)
\r
70 Check if this emitter has `event` handlers.
\r