JSFiddle - React, Tailwind, and code Playground

JavaScript

YUI().use('base', function(Y) {

// pause for a number of milliseconds
function pause(milliseconds) {
    var start = new Date();
    
    while(new Date() - start < milliseconds)
    {}
}

// this will keep track of the last callback that was called
var lastCallbackCalled = -1;

// we'll schedule this many callbacks at first... they will schedule more
var initialCallbacks = 50;
    
// schedule the initial callbacks
for(var i=0; i<initialCallbacks ; i++) {
    Y.later(0, null, processCallback, i);
}

function processCallback(callbackId) {
    Y.log('callback ' + callbackId + ' called');
    if(lastCallbackCalled > callbackId) {
        Y.log('callback ' + callbackId  + ' called after callback ' + lastCallbackCalled, 'error');
    }
    lastCallbackCalled = callbackId;
    // random pause just to jumble things up a bit
    pause(Math.random()*100);
    
    // if this was an initial callback, schedule some more
    if(callbackId < initialCallbacks) {
        for(var i=0; i<initialCallbacks; i++) {
            Y.later(0, null, processCallback, (callbackId+1)*initialCallbacks+i);
        }
    }
}



});