Skip to content
This repository has been archived by the owner on Apr 22, 2023. It is now read-only.

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.

RE: #8853
PR: #8911
PR-URL: #8911
Signed-off-by: Timothy J Fontaine <[email protected]>
  • Loading branch information
jasnell authored and tjfontaine committed Dec 22, 2014
1 parent fd2cb7c commit 4853639
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 @@ -110,14 +118,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 4853639

Please sign in to comment.