MCPcopy Create free account
hub / github.com/angular/angular / endMeasure

Method endMeasure

packages/benchpress/src/metric/user_metric.ts:38–71  ·  view source on GitHub ↗

* Ends measuring.

(restart: boolean)

Source from the content-addressed store, hash-verified

36 * Ends measuring.
37 */
38 override endMeasure(restart: boolean): Promise<{[key: string]: any}> {
39 let resolve: (result: any) => void;
40 let reject: (error: any) => void;
41 const promise = new Promise<{[key: string]: any}>((res, rej) => {
42 resolve = res;
43 reject = rej;
44 });
45 const adapter = this._wdAdapter;
46 const names = Object.keys(this._userMetrics);
47
48 function getAndClearValues() {
49 Promise.all(names.map((name) => adapter.executeScript(`return window.${name}`))).then(
50 (values: any[]) => {
51 if (values.every((v) => typeof v === 'number')) {
52 Promise.all(names.map((name) => adapter.executeScript(`delete window.${name}`))).then(
53 (_: any[]) => {
54 const map: {[k: string]: any} = {};
55 for (let i = 0, n = names.length; i < n; i++) {
56 map[names[i]] = values[i];
57 }
58 resolve(map);
59 },
60 reject,
61 );
62 } else {
63 <any>setTimeout(getAndClearValues, 100);
64 }
65 },
66 reject,
67 );
68 }
69 getAndClearValues();
70 return promise;
71 }
72
73 /**
74 * Describes the metrics provided by this metric implementation.

Callers 1

_iterateMethod · 0.45

Calls 1

keysMethod · 0.65

Tested by

no test coverage detected