diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index d36e1a8..3b8aa86 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -10,6 +10,7 @@ jobs: fail-fast: false matrix: node-version: + - 16 - 14 - 12 steps: diff --git a/index.js b/index.js index 85d8599..b32edb4 100644 --- a/index.js +++ b/index.js @@ -8,7 +8,7 @@ export default async function pMap( stopOnError = true } = {} ) { - return new Promise((resolve, reject) => { + return new Promise((resolve, reject_) => { // eslint-disable-line promise/param-names if (typeof mapper !== 'function') { throw new TypeError('Mapper function is required'); } @@ -26,6 +26,11 @@ export default async function pMap( let resolvingCount = 0; let currentIndex = 0; + const reject = reason => { + isRejected = true; + reject_(reason); + }; + const next = () => { if (isRejected) { return; @@ -74,7 +79,6 @@ export default async function pMap( next(); } catch (error) { if (stopOnError) { - isRejected = true; reject(error); } else { errors.push(error); @@ -87,7 +91,6 @@ export default async function pMap( try { next(); } catch (error) { - isRejected = true; reject(error); } } @@ -104,7 +107,6 @@ export default async function pMap( try { next(); } catch (error) { - isRejected = true; reject(error); break; }