jQuery AJAX handling - old and new way

by kanelbula

JavaScript

/*
Old way
- services have to worry about calling back
- handling failures becomes a hassle
- messy and hard to manage
*/
function goGetItOld( successCallback, failureCallback ) {
  $.ajax({
    url: "/echo/json/",
    success: function( data ) {
      successCallback( data );
    },
    error: function( data ) {
      failureCallback( data );
    }
  });
}

goGetItOld( function( data ) {
  // handle success data
}, function( data ) {
  // handle failure data
});


/*
New way

Use Deferred object that:
- manages our callbacks
- handles successes and failures
- can be passed around
- has a consistent api
*/

function goGetItNew() {
  return $.ajax({
    url: "/echo/json/"
  });
}

goGetItNew().done(function( data ) {
  // handle success data
}).fail(function( data ) {
  // handle failure data
});