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