settle.js 443 B

123456789101112131415161718192021222324
  1. "use strict";
  2. function settle(promises) {
  3. const resolutions = [];
  4. const rejections = [];
  5. function resolved(value) {
  6. resolutions.push(value);
  7. }
  8. function rejected(error) {
  9. rejections.push(error);
  10. }
  11. const wait = Promise.all(promises.map(promise => promise.then(resolved, rejected)));
  12. return wait.then(() => {
  13. return {
  14. successful: resolutions,
  15. failed: rejections
  16. };
  17. });
  18. }
  19. module.exports = settle;