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