JSFiddle - React, Tailwind, and code Playground
JavaScript
var async3 = function (cb) {
setTimeout(function () {
console.log('async3');
cb();
}, 3000);
}
var async2 = function (cb) {
setTimeout(function () {
console.log('async2');
cb();
}, 2000);
}
var async1 = function (cb) {
setTimeout(function () {
console.log('async1');
cb();
}, 1000);
}
var syncCalls = function (funcArr) {
var prevCB;
for (var i = funcArr.length-1; i >= 0; i--) {
(function (index) {
var cb = prevCB;
prevCB = function () {
if (!cb) {
cb = function () {};
}
funcArr[index](cb);
}
})(i);
}
prevCB();
}
syncCalls([async3, async2, async1]);