Sha256: 870ade9b16d7d29ab1232aeb9201d864d350a6c8f171729af3bd96a477b93cc8

Contents?: true

Size: 1.18 KB

Versions: 4

Compression:

Stored size: 1.18 KB

Contents

import Enumerator from './enumerator';
import {
  PENDING
} from './-internal';
import {
  o_create
} from './utils';

function PromiseHash(Constructor, object, label) {
  this._superConstructor(Constructor, object, true, label);
}

export default PromiseHash;

PromiseHash.prototype = o_create(Enumerator.prototype);
PromiseHash.prototype._superConstructor = Enumerator;
PromiseHash.prototype._init = function() {
  this._result = {};
};

PromiseHash.prototype._validateInput = function(input) {
  return input && typeof input === 'object';
};

PromiseHash.prototype._validationError = function() {
  return new Error('Promise.hash must be called with an object');
};

PromiseHash.prototype._enumerate = function() {
  var promise = this.promise;
  var input   = this._input;
  var results = [];

  for (var key in input) {
    if (promise._state === PENDING && input.hasOwnProperty(key)) {
      results.push({
        position: key,
        entry: input[key]
      });
    }
  }

  var length = results.length;
  this._remaining = length;
  var result;

  for (var i = 0; promise._state === PENDING && i < length; i++) {
    result = results[i];
    this._eachEntry(result.entry, result.position);
  }
};

Version data entries

4 entries across 4 versions & 2 rubygems

Version Path
traceur-rb-0.0.4 vendor/node_modules/traceur/node_modules/rsvp/lib/rsvp/promise-hash.js
traceur-rb-0.0.2 vendor/node_modules/traceur/node_modules/rsvp/lib/rsvp/promise-hash.js
spider-src-0.1.7 lib/spider-src/support/spider/node_modules/traceur/node_modules/rsvp/lib/rsvp/promise-hash.js
spider-src-0.1.6 lib/spider-src/support/spider/node_modules/spider-script/node_modules/traceur/node_modules/rsvp/lib/rsvp/promise-hash.js