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);
}
}
}
});