DeferredFailResolve

by Jose Montero

HTML

<div id="process">

</div>

JavaScript

var DeferredObj = (function(){
	
	return {
  	init : function()
    {
				this.validateCheckNumber("12345")
				.then(
					function() 
					{
						return this.savePaymentAdvice();
					}.bind(this)	
				).then(
					function() 
					{
						return this.savePaymentAdviceLineItems();
					}.bind(this)					
				).done(
					function() {					
						document.querySelector("#process").textContent = "All completed!";
					}.bind(this)
				).fail(
					function(error) 
					{	
						var log = "PayInvoice.onSave - error: " + error; 	
            document.querySelector("#process").textContent = log;
					}.bind(this)
				);				    	
    },
  	validateCheckNumber : function(checkNumber)
    {
    	var deferred = $.Deferred();
      
      setTimeout(() => { 
      document.querySelector("#process").textContent = "Validating Check Number: "+checkNumber;
      deferred.resolve(); }, 2000);
      
      return deferred.promise();
    },
    savePaymentAdvice : function()
    {
    	var deferred = $.Deferred();
      
      setTimeout(() => { 
       document.querySelector("#process").textContent = "Saving Payment Advice";
      deferred.resolve(); }, 3000);
      
      return deferred.promise();    
    
    },
    savePaymentAdviceLineItems: function()
    {
    
        	var deferred = $.Deferred();
      
      		setTimeout(() => { 
          document.querySelector("#process").textContent = "Saving Payment Line Item";
          	deferred.resolve(); 
          }, 5000);
      
      		return deferred.promise();
    }
  };
})();

DeferredObj.init();