Last active
December 30, 2015 02:18
-
-
Save veryphatic/7761325 to your computer and use it in GitHub Desktop.
A very simple example showing deferrals and promises using jQuery
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// 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