JSFiddle - React, Tailwind, and code Playground

JavaScript

function log(m) {
    document.body.
    appendChild(document.createElement('div')).
    appendChild(document.createTextNode(m));
}

var name = 'db' + Date.now();

log('blocking queue...');
indexedDB.open(name, 1).onsuccess = function(e) {
    log('unblocking queue...');
    e.target.result.close();
};


// Clear the slate - this implicitly blocks all later opens
indexedDB.deleteDatabase(name).onsuccess = function() {
    log('deleted');
};

function requestOpen(v) {
    var r = indexedDB.open(name, v);
    function listener(e) {
        log('version ' + v + ' - ' + e.type);
    }
    
    r.onblocked = listener;
    r.onsuccess = listener;
    r.onerror = listener;
    return r;
};
window.r1 = requestOpen(1);
window.r2 = requestOpen(2);
window.r3 = requestOpen(3);