JSFiddle - React, Tailwind, and code Playground

by Mohamed Rias

HTML

<p>Wait for a Function is finished until running another Function</p>

JavaScript

var FunctionOne = function () {
  var
    a = $.Deferred(),
    b = $.Deferred();

  // some fake asyc task
  setTimeout(function () {
    alert('a done');
    a.resolve();
  }, Math.random() * 4000);

  // some other fake asyc task
  setTimeout(function () {
    alert('b done');
    b.resolve();
  }, Math.random() * 1000);

  return $.Deferred(function (def) {
    $.when(a, b).done(function () {
      def.resolve();
    });
  });
};

var FunctionTwo = function () {
  alert('FunctionTwo');
};

FunctionOne().done(FunctionTwo);