JSFiddle - React, Tailwind, and code Playground

by Ryan Mitchell

HTML

<button id="clickMe">Click to continue.</button>

JavaScript

var current = 0;
var max = 10;
var deferred = null;

$("#clickMe").click(function() {
    if (deferred && deferred.state() == "pending") {
        deferred.resolve();
    }
});

function selfReferential() {
    if (current < max) {
        $("body").append("<p>"+current+"</p>");
        deferred = $.Deferred();
        current += 1;
        deferred.promise().then(selfReferential);
    } else {
        $("body").append("<p>All done!</p>");
    }
}

selfReferential();