Loading js function deferred nge

by Alexandre Froger

HTML

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.0.0-rc1/jquery.min.js"></script>

JavaScript

var deferred = $.Deferred();
var nbFct = 3; /* Total function to be launched */
var counterFct = 0;

deferred.progress(function(value) {
	$("body").append('<div>'+value+'</div>');
  
  counterFct++;
  if(counterFct === nbFct){
  	deferred.resolve("Loading function is done!");
  }
});
deferred.done(function(value) {
   $("body").append('<div>'+value+'</div>');
});

funct1 = function(){
	var time = Math.floor(Math.random()*(6000-1+1)+1);
	setTimeout(function() {
    deferred.notify("Function1 finished : "+time+"ms");
  }, time );
};

funct2 = function(){
	var time = Math.floor(Math.random()*(6000-1+1)+1);
	setTimeout(function() {
    deferred.notify("Function2 finished : "+time+"ms");
  }, time );
};

funct3 = function(){
	var time = Math.floor(Math.random()*(6000-1+1)+1);
	setTimeout(function() {
    deferred.notify("Function3 finished : "+time+"ms");
  }, time );
};

funct1();
funct2();
funct3();