JSFiddle - React, Tailwind, and code Playground
HTML
<script src="//code.jquery.com/jquery-1.11.3.min.js"></script>
<p id="test">Hello</p>
JavaScript
var retried = function (done, duration, start) {
if (!_.isNumber(start)) start = +(new Date());
return done()
.then(function (dat) {
return dat;
}, function (err) {
var stop = +(new Date());
if (duration > stop - start) return retried(done, duration, start);
return err;
});
};
$(function () {
var $el = $('#test');
function api (message) {
return $.ajax('/echo/json/', {
method: 'POST',
data: { json: JSON.stringify({ message: message }), delay: 6000 },
timeout: 1000
});
}
retried(_.bind(api, undefined, 'Hello, world.'), 3000)
.then(function (dat) {
$el.css('color', '').text(dat.message);
}, function (jqXHR) {
$el.css('color', 'red').text(jqXHR.statusText);
});
});