import Enumerator from './enumerator'; import { PENDING, FULFILLED, fulfill } from './-internal'; const hasOwnProperty = Object.prototype.hasOwnProperty; export default class PromiseHash extends Enumerator { constructor(Constructor, object, abortOnReject = true, label) { super(Constructor, object, abortOnReject, label); } _init(Constructor, object) { this._result = {}; this._enumerate(object); if (this._remaining === 0) { fulfill(this.promise, this._result); } } _enumerate(input) { let promise = this.promise; let results = []; for (let key in input) { if (hasOwnProperty.call(input, key)) { results.push({ position: key, entry: input[key] }); } } let length = results.length; this._remaining = length; let result; for (let i = 0; promise._state === PENDING && i < length; i++) { result = results[i]; this._eachEntry(result.entry, result.position); } } }
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
promise | Folder | 0755 |
|
|
-internal.js | File | 5.6 KB | 0644 |
|
all-settled.js | File | 2.34 KB | 0644 |
|
all.js | File | 328 B | 0644 |
|
asap.js | File | 2.86 KB | 0644 |
|
config.js | File | 278 B | 0644 |
|
defer.js | File | 1.13 KB | 0644 |
|
enumerator.js | File | 2.92 KB | 0644 |
|
events.js | File | 4.85 KB | 0644 |
|
filter.js | File | 3.77 KB | 0644 |
|
hash-settled.js | File | 3.83 KB | 0644 |
|
hash.js | File | 2.73 KB | 0644 |
|
instrument.js | File | 971 B | 0644 |
|
map.js | File | 3.08 KB | 0644 |
|
node.js | File | 6.79 KB | 0644 |
|
platform.js | File | 262 B | 0644 |
|
promise-hash.js | File | 1014 B | 0644 |
|
promise.js | File | 10.32 KB | 0644 |
|
race.js | File | 333 B | 0644 |
|
reject.js | File | 466 B | 0644 |
|
resolve.js | File | 484 B | 0644 |
|
rethrow.js | File | 1.43 KB | 0644 |
|
then.js | File | 903 B | 0644 |
|
utils.js | File | 763 B | 0644 |
|