1
+ /* global EventTarget Event */
1
2
'use strict'
2
3
3
4
const defer = require ( 'p-defer' )
4
- const EventEmitter = require ( 'events' ) . EventEmitter
5
5
6
6
/**
7
7
* @template T
@@ -12,6 +12,8 @@ const EventEmitter = require('events').EventEmitter
12
12
* @property {T } value
13
13
*/
14
14
15
+ const CustomEvent = globalThis . CustomEvent || Event
16
+
15
17
/**
16
18
* Takes an (async) iterator that emits promise-returning functions,
17
19
* invokes them in parallel and emits the results as they become available but
@@ -32,7 +34,7 @@ async function * parallel (source, options = {}) {
32
34
}
33
35
34
36
const ordered = options . ordered == null ? false : options . ordered
35
- const emitter = new EventEmitter ( )
37
+ const emitter = new EventTarget ( )
36
38
37
39
/** @type {Operation<T>[] }} */
38
40
const ops = [ ]
@@ -42,7 +44,7 @@ async function * parallel (source, options = {}) {
42
44
let sourceErr
43
45
let opErred = false
44
46
45
- emitter . on ( 'task-complete' , ( ) => {
47
+ emitter . addEventListener ( 'task-complete' , ( ) => {
46
48
resultAvailable . resolve ( )
47
49
} )
48
50
@@ -71,19 +73,19 @@ async function * parallel (source, options = {}) {
71
73
op . done = true
72
74
op . ok = true
73
75
op . value = result
74
- emitter . emit ( 'task-complete' )
76
+ emitter . dispatchEvent ( new CustomEvent ( 'task-complete' ) )
75
77
} , err => {
76
78
op . done = true
77
79
op . err = err
78
- emitter . emit ( 'task-complete' )
80
+ emitter . dispatchEvent ( new CustomEvent ( 'task-complete' ) )
79
81
} )
80
82
}
81
83
82
84
sourceFinished = true
83
- emitter . emit ( 'task-complete' )
85
+ emitter . dispatchEvent ( new CustomEvent ( 'task-complete' ) )
84
86
} catch ( err ) {
85
87
sourceErr = err
86
- emitter . emit ( 'task-complete' )
88
+ emitter . dispatchEvent ( new CustomEvent ( 'task-complete' ) )
87
89
}
88
90
} )
89
91
0 commit comments