JSFiddle - React, Tailwind, and code Playground
HTML
<script type="text/javascript" src="https://code.jquery.com/jquery-2.1.3.js"></script>
<script type="text/javascript" src="http://cdnjs.cloudflare.com/ajax/libs/q.js/0.9.2/q.js"></script>
JavaScript
// src: https://gist.github.com/jeffcogswell/8257755
function one() {
var deferred = Q.defer();
console.log("Starting one's's ajax");
$.ajax( {
url: 'http://ip.jsontest.com/',
success: function() {
console.log('Finished with one. Ready to call next.');
deferred.resolve();
}
});
return deferred.promise;
}
function two() {
var deferred = Q.defer();
console.log("Starting two's ajax");
$.ajax( {
url: 'http://ip.jsontest.com/',
success: function() {
console.log('Finished with two. Ready to call next.');
deferred.resolve();
}
});
return deferred.promise;
}
function three() {
var deferred = Q.defer();
console.log("Starting three's ajax");
$.ajax( {
url: 'http://ip.jsontest.com/',
success: function() {
console.log('Finished with three. Ready to call next if there is one.');
deferred.resolve();
}
});
return deferred.promise;
}
one()
.then(two)
.then(three)
.then(function () {
var deferred = Q.defer();
setTimeout(function () {
deferred.reject(new Error("HELP! :("));
}, 1000);
return deferred.promise;
})
.then(function () {
console.log("hey!? where am i?")
})
.catch(function (error) {
console.log('oh no');
console.log(error);
})
.done();
// (function () {
// var deferred = Q.defer();
// console.log(1);
// setTimeout(function () {
// deferred.resolve();
// }, 1000);
// return deferred.promise;
// })()
// .then(function () {
// console.log(2)
// })
/*function promiseWhile(condition, body) {
var done = Q.defer();
function loop() {
// When the result of calling `condition` is no longer true, we are
// done.
if (!condition()) return done.resolve();
// Use `when`, in case `body`...