Skip to content

Commit

Permalink
doc: clarify add/removeListener semantics
Browse files Browse the repository at this point in the history
Clarify that adding or removing a listener is not idempotent.

PR-URL: nodejs/node-v0.x-archive#8911
Signed-off-by: Timothy J Fontaine <tjfontaine@gmail.com>

Cherry-picked-from: nodejs/node-v0.x-archive@4853639
  • Loading branch information
jasnell authored and piscisaureus committed Jan 10, 2015
1 parent f1e685f commit ff350f7
Showing 1 changed file with 13 additions and 5 deletions.
18 changes: 13 additions & 5 deletions doc/api/events.markdown
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,10 @@ added and `'removeListener'` when a listener is removed.
### emitter.addListener(event, listener)
### emitter.on(event, listener)

Adds a listener to the end of the listeners array for the specified event.
Adds a listener to the end of the listeners array for the specified `event`.
No checks are made to see if the `listener` has already been added. Multiple
calls passing the same combination of `event` and `listener` will result in the
`listener` being added multiple times.

server.on('connection', function (stream) {
console.log('someone connected!');
Expand Down Expand Up @@ -65,6 +68,11 @@ Remove a listener from the listener array for the specified event.
// ...
server.removeListener('connection', callback);

`removeListener` will remove, at most, one instance of a listener from the
listener array. If any single listener has been added multiple times to the
listener array for the specified `event`, then `removeListener` must be called
multiple times to remove each instance.

Returns emitter, so calls can be chained.

### emitter.removeAllListeners([event])
Expand Down Expand Up @@ -135,14 +143,14 @@ Return the number of listeners for a given event.
* `event` {String} The event name
* `listener` {Function} The event handler function

This event is emitted any time someone adds a new listener. It is unspecified
if `listener` is in the list returned by `emitter.listeners(event)`.
This event is emitted any time a listener is added. When this event is triggered,
the listener may not yet have been added to the array of listeners for the `event`.


### Event: 'removeListener'

* `event` {String} The event name
* `listener` {Function} The event handler function

This event is emitted any time someone removes a listener. It is unspecified
if `listener` is in the list returned by `emitter.listeners(event)`.
This event is emitted any time someone removes a listener. When this event is triggered,
the listener may not yet have been removed from the array of listeners for the `event`.

0 comments on commit ff350f7

Please sign in to comment.