Promise Q examples
by Soviut
HTML
<script src="https://rawgit.com/kriskowal/q/v1/q.js"></script>
JavaScript
function startLongTask() {
console.log('starting long task');
var defer = Q.defer();
setTimeout(function() {
console.log('timer finished');
defer.resolve('ding');
//defer.reject('BAD OUTPUT');
}, 2000);
return defer.promise;
};
var longPromise = startLongTask();
longPromise.then(function(data) {
console.log('long promise resolved', data);
}, function(reason) {
console.log('long promise failed', reason);
});
function callSlowApi() {
console.log('calling slow API');
var xhr = $.ajax({
url: '/echo/json/',
type: 'POST',
data: {
json: '{"name": "Ian"}',
delay: 4
}
});
return Q(xhr);
}
var apiPromise = callSlowApi();
apiPromise.then(function(data) {
console.log('slow API complete', data.name);
});
Q.all([longPromise, apiPromise]).then(function(data) {
console.log('all tasks complete', data);
}, function(reason) {
console.log('not all tasks succeeded', reason);
});