diff --git a/index.js b/index.js index 8bd6211..a994f09 100644 --- a/index.js +++ b/index.js @@ -230,7 +230,7 @@ module.exports.iterator = (emitter, event, options) => { }, return(value) { cancel(); - return {done, value}; + return Promise.resolve({done, value}); } }; }; diff --git a/test.js b/test.js index 530da0c..16cc2b7 100644 --- a/test.js +++ b/test.js @@ -243,6 +243,15 @@ test('event to AsyncIterator', async t => { t.deepEqual(await iterator.next(), {done: false, value: 'Some third thing.'}); }); +test('event to AsyncIterator implements return', async t => { + const emitter = new EventEmitter(); + const iterator = pEvent.iterator(emitter, '🦄'); + + t.true(iterator.return('x') instanceof Promise); + t.deepEqual(await iterator.return('y'), {done: true, value: 'y'}); + t.deepEqual(await iterator.next(), {done: true, value: undefined}); +}); + test('event to AsyncIterator with multiple event names', async t => { const emitter = new EventEmitter(); const iterator = pEvent.iterator(emitter, ['🦄', '🌈']);