File tree 4 files changed +22
-10
lines changed
4 files changed +22
-10
lines changed Original file line number Diff line number Diff line change @@ -7,7 +7,7 @@ export default async function pMap(
7
7
signal,
8
8
} = { } ,
9
9
) {
10
- return new Promise ( ( resolve , reject_ ) => {
10
+ return new Promise ( ( resolve_ , reject_ ) => {
11
11
if ( iterable [ Symbol . iterator ] === undefined && iterable [ Symbol . asyncIterator ] === undefined ) {
12
12
throw new TypeError ( `Expected \`input\` to be either an \`Iterable\` or \`AsyncIterable\`, got (${ typeof iterable } )` ) ;
13
13
}
@@ -30,20 +30,32 @@ export default async function pMap(
30
30
let currentIndex = 0 ;
31
31
const iterator = iterable [ Symbol . iterator ] === undefined ? iterable [ Symbol . asyncIterator ] ( ) : iterable [ Symbol . iterator ] ( ) ;
32
32
33
+ const signalListener = ( ) => {
34
+ reject ( signal . reason ) ;
35
+ } ;
36
+
37
+ const cleanup = ( ) => {
38
+ signal ?. removeEventListener ( 'abort' , signalListener ) ;
39
+ } ;
40
+
41
+ const resolve = value => {
42
+ resolve_ ( value ) ;
43
+ cleanup ( ) ;
44
+ } ;
45
+
33
46
const reject = reason => {
34
47
isRejected = true ;
35
48
isResolved = true ;
36
49
reject_ ( reason ) ;
50
+ cleanup ( ) ;
37
51
} ;
38
52
39
53
if ( signal ) {
40
54
if ( signal . aborted ) {
41
55
reject ( signal . reason ) ;
42
56
}
43
57
44
- signal . addEventListener ( 'abort' , ( ) => {
45
- reject ( signal . reason ) ;
46
- } ) ;
58
+ signal . addEventListener ( 'abort' , signalListener , { once : true } ) ;
47
59
}
48
60
49
61
const next = async ( ) => {
Original file line number Diff line number Diff line change 1
1
{
2
2
"name" : " p-map" ,
3
- "version" : " 7.0.2 " ,
3
+ "version" : " 7.0.3 " ,
4
4
"description" : " Map over promises concurrently" ,
5
5
"license" : " MIT" ,
6
6
"repository" : " sindresorhus/p-map" ,
Original file line number Diff line number Diff line change 134
134
"npm-profile": "^11.0.1",
135
135
"npm-registry-fetch": "^18.0.2",
136
136
"npm-user-validate": "^3.0.0",
137
- "p-map": "^7.0.2 ",
137
+ "p-map": "^7.0.3 ",
138
138
"pacote": "^21.0.0",
139
139
"parse-conflict-json": "^4.0.0",
140
140
"proc-log": "^5.0.0",
12769
12769
}
12770
12770
},
12771
12771
"node_modules/p-map": {
12772
- "version": "7.0.2 ",
12773
- "resolved": "https://registry.npmjs.org/p-map/-/p-map-7.0.2 .tgz",
12774
- "integrity": "sha512-z4cYYMMdKHzw4O5UkWJImbZynVIo0lSGTXc7bzB1e/rrDqkgGUNysK/o4bTr+0+xKvvLoTyGqYC4Fgljy9qe1Q ==",
12772
+ "version": "7.0.3 ",
12773
+ "resolved": "https://registry.npmjs.org/p-map/-/p-map-7.0.3 .tgz",
12774
+ "integrity": "sha512-VkndIv2fIB99swvQoA65bm+fsmt6UNdGeIB0oxBs+WhAhdh08QA04JXpI7rbB9r08/nkbysKoya9rtDERYOYMA ==",
12775
12775
"inBundle": true,
12776
12776
"license": "MIT",
12777
12777
"engines": {
Original file line number Diff line number Diff line change 101
101
"npm-profile" : " ^11.0.1" ,
102
102
"npm-registry-fetch" : " ^18.0.2" ,
103
103
"npm-user-validate" : " ^3.0.0" ,
104
- "p-map" : " ^7.0.2 " ,
104
+ "p-map" : " ^7.0.3 " ,
105
105
"pacote" : " ^21.0.0" ,
106
106
"parse-conflict-json" : " ^4.0.0" ,
107
107
"proc-log" : " ^5.0.0" ,
You can’t perform that action at this time.
0 commit comments