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();
      
   }
});