Deferred and Promise
Showcasing use of Deferred with promise.
by Kamal Rawat
HTML
<script src="https://code.jquery.com/jquery-2.1.4.min.js"></script>
<input type="button" value="Hit" id="btnhit"/>
JavaScript
$(document).ready(function(){
$('#btnhit').click(function(){
var delaypromise = delayfor5seconds();
console.log('1');
delaypromise.done(function(result){
console.log(result);
messageover();
});
console.log('2');
})
function messageover()
{
console.log('delay over');
};
function delaywalamessage()
{
var p = $.Deferred();
console.log('DD Stated1');
setTimeout(function(){
console.log('five seconds delay started');
},5000).done(function(r){
p.resolve(r);
}).fail(p.reject);
return p.promise();
}
function postaction()
{
var p = $.Deferred();
$.post(
"/echo/json/",
{json: JSON.stringify({firstName: "Kamal", lastName: "Rawat", ssn: "123456789"}),
delay: 4}
).done(function(r){
p.resolve(r);
}).fail(p.reject);
return p.promise();
}
function delayfor5seconds()
{
var d = $.Deferred();
var pp = postaction();
$.when(pp).done(function(p){
d.resolve(p);
}).fail(d.reject);
return d.promise();
/*var d = $.Deferred();
delaywalamessage().done(function(p){
d.resolve(p);
}).fail(d.reject);
return d.promise();*/
//return deferred.done( delaywalamessage() ).promise();
}
});