mirror of
https://github.com/nodejs/node.git
synced 2025-05-05 15:32:15 +00:00

Per https://github.com/nodejs/node/issues/1817, there are many modules that currently abuse the private `_events` property on EventEmitter. One of the ways it is used is to determine if a particular event is being listened for. This adds a simple `eventNames()` method that returns an array of the events with currently registered listeners. PR-URL: https://github.com/nodejs/node/pull/5617 Reviewed-By: Brian White <mscdex@mscdex.net> Reviewed-By: Сковорода Никита Андреевич <chalkerx@gmail.com> Reviewed-By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com>
20 lines
554 B
JavaScript
20 lines
554 B
JavaScript
'use strict';
|
|
|
|
require('../common');
|
|
const EventEmitter = require('events');
|
|
const assert = require('assert');
|
|
|
|
const EE = new EventEmitter();
|
|
const m = () => {};
|
|
EE.on('foo', () => {});
|
|
assert.deepStrictEqual(['foo'], EE.eventNames());
|
|
EE.on('bar', m);
|
|
assert.deepStrictEqual(['foo', 'bar'], EE.eventNames());
|
|
EE.removeListener('bar', m);
|
|
assert.deepStrictEqual(['foo'], EE.eventNames());
|
|
const s = Symbol('s');
|
|
EE.on(s, m);
|
|
assert.deepStrictEqual(['foo', s], EE.eventNames());
|
|
EE.removeListener(s, m);
|
|
assert.deepStrictEqual(['foo'], EE.eventNames());
|