sample: testing jQuery.Deferred

by sii_side

JavaScript

var time = new Date();
start().then(a).then(b).then(c);

function start() {
	var dfd = $.Deferred();
	console.log(new Date - time + " called start");

  window.setTimeout(function() {
    console.log(new Date - time + " finish start");
    dfd.resolve();
  }, 2000);

	return dfd.promise();
};

function a() {
	var dfd = $.Deferred();
	console.log(new Date - time + " called a");
  
	window.setTimeout(function() {
  	console.log(new Date - time + " finish a");
    dfd.resolve();
  }, 2000);

  return dfd.promise();
}

function b() {
	var dfd = $.Deferred();
	console.log(new Date - time + " called b");

	window.setTimeout(function() {
  	console.log(new Date - time + " finish b");
    dfd.resolve();
  }, 2000);

  return dfd.promise();
}

function c() {
	console.log(new Date - time + " called c");

	window.setTimeout(function() {
  	console.log(new Date - time + " finish c");
	}, 2000);
}