====== Обещания / Promises ======

===== Native =====

<code javascript>
var promise = new Promise(function(resolve, reject) {
  // здесь вытворяй что угодно, если хочешь асинхронно, потом…
  
  if (/* ..если всё закончилось успехом */) {
    resolve("Работает!");
  }
  else {
    reject(Error("Сломалось"));
  }
});

promise.then(function(result) {
  console.log(result); // "Обрабатываем результат!"
}, function(err) {
  console.log(err); // Ошибка: "Сломалось"
});
</code>

===== JQuery =====

<code javascript>
var jqDeferred = $.ajax('/whatever.json');

jqDeferred.then(function(response, statusText, xhrObj) {
  // ...
}, function(xhrObj, textStatus, err) {
  // ...
});

В то время как JS обещания игнорируют все кроме первого:

jsPromise.then(function(response) {
  // ...
}, function(xhrObj) {
  // ...
});
</code>