JSFiddle - React, Tailwind, and code Playground

JavaScript

function render1() {
  var dfd = jQuery.Deferred();
  // simulates your self.model.fetch stuff
  setTimeout(function() {
    dfd.resolve({tmpl1: "<div>render 1</div>"});
  }, 2000 );
  return dfd.promise();
}

function render2() {
  var dfd = jQuery.Deferred();
  // executes significantly faster than render1();
  setTimeout(function() {
      dfd.resolve({tmpl2: "<div>render 2</div>"});
  }, 1000 );
  return dfd.promise();
}    
 
// Attach a done, fail, and progress handler for the asyncEvent
$.when(render1()).then(function(result) {
    $('body').append(result.tmpl1);
    render2().then(function (result) {
        $('body').append(result.tmpl2);
    });
});