MCPcopy Index your code
hub / github.com/angular/angular / all

Method all

packages/upgrade/src/common/src/promise_util.ts:27–46  ·  view source on GitHub ↗
(valuesOrPromises: (T | Thenable<T>)[])

Source from the content-addressed store, hash-verified

25 private callbacks: ((value: T) => unknown)[] = [];
26
27 static all<T>(valuesOrPromises: (T | Thenable<T>)[]): SyncPromise<T[]> {
28 const aggrPromise = new SyncPromise<T[]>();
29
30 let resolvedCount = 0;
31 const results: T[] = [];
32 const resolve = (idx: number, value: T) => {
33 results[idx] = value;
34 if (++resolvedCount === valuesOrPromises.length) aggrPromise.resolve(results);
35 };
36
37 valuesOrPromises.forEach((p, idx) => {
38 if (isThenable(p)) {
39 p.then((v) => resolve(idx, v));
40 } else {
41 resolve(idx, p);
42 }
43 });
44
45 return aggrPromise;
46 }
47
48 resolve(value: T): void {
49 // Do nothing, if already resolved.

Callers 2

directiveFactoryFunction · 0.45

Calls 4

isThenableFunction · 0.70
thenMethod · 0.65
resolveFunction · 0.50
forEachMethod · 0.45

Tested by

no test coverage detected