Sha256: 0333086c31741b78070f0346becab9ea1d1b4727da81ab791d12c581dae63679

Contents?: true

Size: 1.48 KB

Versions: 25

Compression:

Stored size: 1.48 KB

Contents

'use strict';
var $ = require('../internals/export');
var aFunction = require('../internals/a-function');
var newPromiseCapabilityModule = require('../internals/new-promise-capability');
var perform = require('../internals/perform');
var iterate = require('../internals/iterate');

// `Promise.allSettled` method
// https://github.com/tc39/proposal-promise-allSettled
$({ target: 'Promise', stat: true }, {
  allSettled: function allSettled(iterable) {
    var C = this;
    var capability = newPromiseCapabilityModule.f(C);
    var resolve = capability.resolve;
    var reject = capability.reject;
    var result = perform(function () {
      var promiseResolve = aFunction(C.resolve);
      var values = [];
      var counter = 0;
      var remaining = 1;
      iterate(iterable, function (promise) {
        var index = counter++;
        var alreadyCalled = false;
        values.push(undefined);
        remaining++;
        promiseResolve.call(C, promise).then(function (value) {
          if (alreadyCalled) return;
          alreadyCalled = true;
          values[index] = { status: 'fulfilled', value: value };
          --remaining || resolve(values);
        }, function (e) {
          if (alreadyCalled) return;
          alreadyCalled = true;
          values[index] = { status: 'rejected', reason: e };
          --remaining || resolve(values);
        });
      });
      --remaining || resolve(values);
    });
    if (result.error) reject(result.value);
    return capability.promise;
  }
});

Version data entries

25 entries across 25 versions & 7 rubygems

Version Path
optimacms-0.1.61 spec/dummy/node_modules/core-js/modules/es.promise.all-settled.js
disco_app-0.18.0 test/dummy/node_modules/core-js/modules/es.promise.all-settled.js
disco_app-0.18.2 test/dummy/node_modules/core-js/modules/es.promise.all-settled.js
tang-0.2.1 spec/tang_app/node_modules/core-js/modules/es.promise.all-settled.js
tang-0.2.0 spec/tang_app/node_modules/core-js/modules/es.promise.all-settled.js
tang-0.1.0 spec/tang_app/node_modules/core-js/modules/es.promise.all-settled.js
tang-0.0.9 spec/tang_app/node_modules/core-js/modules/es.promise.all-settled.js
enju_library-0.3.8 spec/dummy/node_modules/core-js/modules/es.promise.all-settled.js
condenser-0.3 lib/condenser/processors/node_modules/core-js-pure/modules/es.promise.all-settled.js
condenser-0.2 lib/condenser/processors/node_modules/core-js-pure/modules/es.promise.all-settled.js
condenser-0.1 lib/condenser/processors/node_modules/core-js-pure/modules/es.promise.all-settled.js
condenser-0.0.12 lib/condenser/processors/node_modules/core-js-pure/modules/es.promise.all-settled.js
condenser-0.0.11 lib/condenser/processors/node_modules/core-js-pure/modules/es.promise.all-settled.js
condenser-0.0.10 lib/condenser/processors/node_modules/core-js-pure/modules/es.promise.all-settled.js
condenser-0.0.9 lib/condenser/processors/node_modules/core-js-pure/modules/es.promise.all-settled.js
condenser-0.0.8 lib/condenser/processors/node_modules/core-js-pure/modules/es.promise.all-settled.js
jester-data-8.0.0 node_modules/core-js/modules/es.promise.all-settled.js
ezii-os-5.2.1 node_modules/core-js/modules/es.promise.all-settled.js
ezii-os-2.0.1 node_modules/core-js/modules/es.promise.all-settled.js
ezii-os-1.1.0 node_modules/core-js/modules/es.promise.all-settled.js