github.com/DerekStrickland/consul@v1.4.5/ui-v2/tests/lib/measure/getMeasure.js (about) 1 /* eslint no-console: "off" */ 2 const log = function(results, measurement, tags) { 3 console.log(measurement, results, tags); 4 }; 5 export default function(len = 10000, report = log, performance = window.performance) { 6 return function(cb, measurement, tags) { 7 let actual; 8 return new Array(len) 9 .fill(true) 10 .reduce(function(prev, item, i) { 11 return prev.then(function(ms) { 12 return new Promise(function(resolve) { 13 const start = performance.now(); 14 cb().then(function(res) { 15 actual = res; 16 resolve(ms + (performance.now() - start)); 17 }); 18 }); 19 }); 20 }, Promise.resolve(0)) 21 .then(function(total) { 22 report({ avg: total / len, total: total, count: len }, measurement, tags); 23 return actual; 24 }); 25 }; 26 }