Skip to content

Instantly share code, notes, and snippets.

@veryphatic
Last active December 30, 2015 02:18
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save veryphatic/7761325 to your computer and use it in GitHub Desktop.
Save veryphatic/7761325 to your computer and use it in GitHub Desktop.
A very simple example showing deferrals and promises using jQuery
// Setup a global scopped timer variable
var timer;
// Create a named function expression
var yourPromise = getBeer();
// Execute this code when the promise is done
yourPromise.done(function(message) {
console.log('done. ' + message);
});
// Execute this code when update notifications are recieved
yourPromise.progress(function(message) {
console.log('progress: ' + message);
});
// Our worker function: returns a deferred promise
function getBeer() {
// Setup a deferred object
var deferred = $.Deferred();
// Notify our progress listener of our progress every second
timer = setInterval(function() {
deferred.notify('Still out getting beer');
}, 1000);
// After 10 seconds clear our notification and resolve our promise
setTimeout(function() {
clearInterval(timer);
deferred.resolve('Here is your beer');
}, 10000);
// Return our deferred promise
return deferred.promise();
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment