Promise.allSettled Polyfill

by Konstantin Rouda

CSS

/*

https://github.com/es-shims/Promise.allSettled/blob/master/implementation.js

*/

JavaScript

;(function () {
   "use strict";
   
if(!Promise.allSettled) {

   Promise.allSettled = function allSettled (promises) {
    
   function allSettledPromisesMap (promise) {
      
      function onResolve (value) {
        return {
          "status": "fulfilled",
          "value": value
        };
      };
      
      
      function onReject (reason) {
        return {
          "status": "rejected",
          "reason": reason
        };
      };
     
     return promise.then(onResolve).catch(onReject);
  };
    
   var pendingPromises = promises.map(allSettledPromisesMap);

   return Promise.all(pendingPromises);  
 };
    
};
   
   
})();