JSFiddle - React, Tailwind, and code Playground
by jfriend00
JavaScript
function delay(t, val) {
return new Promise(function (resolve) {
setTimeout(function() {
resolve(val);
}, t);
});
}
function flatten(arr) {
return arr.reduce(function(a, b) { return a.concat(b); }, []);
}
var p1 = delay(100, 1);
var p2 = delay(200, 2);
var p3 = delay(300, 3);
var p4 = delay(120, 4);
var p5 = delay(150, 5);
var ps = [p1, [p2, p3], [p4, p5]]
Promise.all(flatten(ps)).then(function(r) {
log(r);
});
// utility function to display output
function log(args) {
var str = "";
for (var i = 0; i < arguments.length; i++) {
if (typeof arguments[i] === "object") {
str += JSON.stringify(arguments[i]);
} else {
str += arguments[i];
}
}
var div = document.createElement("div");
div.innerHTML = str;
var target = log.id ? document.getElementById(log.id) : document.body;
target.appendChild(div);
}