JSFiddle - React, Tailwind, and code Playground
HTML
<a href="#">Click me!</a>
<div></div>
JavaScript
function GetSomeDeferredStuff(elem, name, cycles) {
var el = (elem || {})
, queueName = (name || "q")
, len = (cycles || 5);
return $(el).queue(queueName
, $.map(Array(len), function (_, index) {
return function (next) {
return $.ajax({
type: "POST",
url: '/echo/html/',
data: {
html: "<p>Task #" + (1 + index) + " complete.",
delay: (index + 1) / 2
},
success: function (data) {
$("div").append(data);
}
}).then(next)
}
})).dequeue(queueName).promise(queueName);
}
$(function () {
$("a").click(function () {
var promise = GetSomeDeferredStuff();
promise.then(function () {
$("div").append("<p>All done!</p>");
});
});
});