JSFiddle - React, Tailwind, and code Playground

JavaScript

var async = Function.prototype.call.bind(function () {
    setTimeout.bind(null, this, 0).apply(null, arguments);
});

function forEach(array, funct, callback) {
    if (array.length)
    async(funct, array[0], forEach.bind(null, array.slice(1), funct, callback));
    else async(callback);
}

var a = [2, 3, 5];

forEach(a, function (element, next) {
    alert(element);
    next();
}, done);

alert(7);

function done() {
    alert(a);
}