MCPcopy
hub / github.com/cujojs/when / all

Function all

keys.js:30–56  ·  view source on GitHub ↗

* Resolve all the key-value pairs in the supplied object or promise * for an object. * @param {Promise|object} object or promise for object whose key-value pairs * will be resolved * @returns {Promise} promise for an object with the fully resolved key-value pairs

(object)

Source from the content-addressed store, hash-verified

28 * @returns {Promise} promise for an object with the fully resolved key-value pairs
29 */
30 function all(object) {
31 var p = Promise._defer();
32 var resolver = Promise._handler(p);
33
34 var results = {};
35 var keys = Object.keys(object);
36 var pending = keys.length;
37
38 for(var i=0, k; i<keys.length; ++i) {
39 k = keys[i];
40 Promise._handler(object[k]).fold(settleKey, k, results, resolver);
41 }
42
43 if(pending === 0) {
44 resolver.resolve(results);
45 }
46
47 return p;
48
49 function settleKey(k, x, resolver) {
50 /*jshint validthis:true*/
51 this[k] = x;
52 if(--pending === 0) {
53 resolver.resolve(results);
54 }
55 }
56 }
57
58 /**
59 * Map values in the supplied object's keys

Callers 4

sequence.jsFile · 0.70
mapFunction · 0.70
parallel.jsFile · 0.70
pipeline.jsFile · 0.70

Calls

no outgoing calls

Tested by

no test coverage detected