JSFiddle - React, Tailwind, and code Playground

JavaScript

var after = function _after(count, f) {
  var c = 0, results = [];
  return function _callback() {
    switch (arguments.length) {
      case 0: results.push(null); break;
      case 1: results.push(arguments[0]); break;
      default: results.push(arguments); break;
    }
    if (++c === count) {
      f.apply(this, results);
    }
  };
};

var doo = function _do(count, f) {
    for (var i = 0; i < count; i++) {
        f();    
    }
};


function test(i, ar, callback){
    var runner = (function() {
        var l = ar.length;
        
        if (l < i) {
            ar.push(l);
            setTimeout(runner, 0);
        } else {
            callback(ar);    
        }
    }).bind(i, ar, callback);
    if ( ar === undefined ){
        var ar = []
    };
    runner();
}

var s = new Date(),
    count = 1,
    cb = after(count, function() {
        console.log(new Date() - s);    
    });

doo(count, function() {
    test(10, undefined, cb);
});