{"_id":"promise-all-reject-late","_rev":"60450","name":"promise-all-reject-late","description":"Like Promise.all, but save rejections until all promises are resolved","dist-tags":{"latest":"1.0.1"},"maintainers":[{"name":"isaacs","email":""}],"time":{"modified":"2022-10-18T09:49:01.000Z","created":"2019-12-27T20:28:12.645Z","1.0.1":"2020-01-28T03:45:39.762Z","1.0.0":"2019-12-27T20:28:12.645Z"},"users":{},"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"https://izs.me"},"versions":{"1.0.1":{"name":"promise-all-reject-late","version":"1.0.1","description":"Like Promise.all, but save rejections until all promises are resolved","author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"https://izs.me"},"license":"ISC","scripts":{"test":"tap","preversion":"npm test","postversion":"npm publish","prepublishOnly":"git push origin --follow-tags"},"tap":{"check-coverage":true},"devDependencies":{"tap":"^14.10.5"},"funding":{"url":"https://github.com/sponsors/isaacs"},"gitHead":"c892a9db86650c9229ab4cc70395106684d6818a","_id":"promise-all-reject-late@1.0.1","_nodeVersion":"12.14.1","_npmVersion":"6.13.6","dist":{"shasum":"f8ebf13483e5ca91ad809ccc2fcf25f26f8643c2","size":30838,"noattachment":false,"key":"/promise-all-reject-late/-/promise-all-reject-late-1.0.1.tgz","tarball":"http://name.csiicloud.com:7001/promise-all-reject-late/download/promise-all-reject-late-1.0.1.tgz"},"maintainers":[{"name":"isaacs","email":""}],"_npmUser":{"name":"isaacs","email":"i@izs.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/promise-all-reject-late_1.0.1_1580183139628_0.5159334029276426"},"_hasShrinkwrap":false,"publish_time":1580183139762,"_cnpm_publish_time":1580183139762},"1.0.0":{"name":"promise-all-reject-late","version":"1.0.0","description":"Like Promise.all, but save rejections until all promises are resolved","author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"https://izs.me"},"license":"ISC","scripts":{"test":"tap","preversion":"npm test","postversion":"npm publish","prepublishOnly":"git push origin --follow-tags"},"tap":{"check-coverage":true},"devDependencies":{"tap":"^14.10.5"},"gitHead":"e9614a15b22f421aa97ff281d4e0f23681edbe98","_id":"promise-all-reject-late@1.0.0","_nodeVersion":"13.3.0","_npmVersion":"6.13.4","dist":{"shasum":"4fa37515e2d78c3b0462414402a8debce62b8b9f","size":30706,"noattachment":false,"key":"/promise-all-reject-late/-/promise-all-reject-late-1.0.0.tgz","tarball":"http://name.csiicloud.com:7001/promise-all-reject-late/download/promise-all-reject-late-1.0.0.tgz"},"maintainers":[{"name":"isaacs","email":""}],"_npmUser":{"name":"isaacs","email":"i@izs.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/promise-all-reject-late_1.0.0_1577478492470_0.9438095135747766"},"_hasShrinkwrap":false,"publish_time":1577478492645,"_cnpm_publish_time":1577478492645}},"readme":"# promise-all-reject-late\n\nLike Promise.all, but save rejections until all promises are resolved.\n\nThis is handy when you want to do a bunch of things in parallel, and\nrollback on failure, without clobbering or conflicting with those parallel\nactions that may be in flight.  For example, creating a bunch of files,\nand deleting any if they don't all succeed.\n\nExample:\n\n```js\nconst lateReject = require('promise-all-reject-late')\n\nconst { promisify } = require('util')\nconst fs = require('fs')\nconst writeFile = promisify(fs.writeFile)\n\nconst createFilesOrRollback = (files) => {\n  return lateReject(files.map(file => writeFile(file, 'some data')))\n    .catch(er => {\n      // try to clean up, then fail with the initial error\n      // we know that all write attempts are finished at this point\n      return lateReject(files.map(file => rimraf(file)))\n        .catch(er => {\n          console.error('failed to clean up, youre on your own i guess', er)\n        })\n        .then(() => {\n          // fail with the original error\n          throw er\n        })\n    })\n}\n```\n\n## API\n\n* `lateReject([array, of, promises])` - Resolve all the promises,\n  returning a promise that rejects with the first error, or resolves with\n  the array of results, but only after all promises are settled.\n","_attachments":{},"license":"ISC"}