JSFiddle - React, Tailwind, and code Playground

JavaScript

var stack = [], 
    timer = null;

function process() {
    var p = document.createElement('p');
    p.innerText = stack.shift();
    document.body.appendChild(p);
    if (stack.length === 0) {
        clearInterval(timer);
        timer = null;
    }
}

function queue(item) {
    stack.push(item);
    if (timer === null) {
        timer = setInterval(process, 500);
    }
}

queue(1);
queue(2);
queue(3);
queue(4);
queue(5);
queue(6);
queue(7);
queue(8);
queue(9);
queue(10);
queue(11);
queue(12);