events: onceWrapper returns target value
PR-URL: https://github.com/nodejs/node/pull/25818 Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de> Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
This commit is contained in:
parent
905988ae68
commit
acc506c2d2
@ -283,7 +283,7 @@ function onceWrapper(...args) {
|
||||
if (!this.fired) {
|
||||
this.target.removeListener(this.type, this.wrapFn);
|
||||
this.fired = true;
|
||||
Reflect.apply(this.listener, this.target, args);
|
||||
return Reflect.apply(this.listener, this.target, args);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -27,6 +27,12 @@ const events = require('events');
|
||||
|
||||
function listener() {}
|
||||
function listener2() {}
|
||||
function listener3() {
|
||||
return 0;
|
||||
}
|
||||
function listener4() {
|
||||
return 1;
|
||||
}
|
||||
|
||||
{
|
||||
const ee = new events.EventEmitter();
|
||||
@ -101,3 +107,15 @@ function listener2() {}
|
||||
assert.strictEqual(wrappedListeners.length, 2);
|
||||
assert.strictEqual(wrappedListeners[1].listener, listener);
|
||||
}
|
||||
|
||||
{
|
||||
const ee = new events.EventEmitter();
|
||||
ee.once('foo', listener3);
|
||||
ee.on('foo', listener4);
|
||||
const rawListeners = ee.rawListeners('foo');
|
||||
assert.strictEqual(rawListeners.length, 2);
|
||||
assert.strictEqual(rawListeners[0](), 0);
|
||||
const rawListener = ee.rawListeners('foo');
|
||||
assert.strictEqual(rawListener.length, 1);
|
||||
assert.strictEqual(rawListener[0](), 1);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user