Содержание

Обещания / Promises

Native

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

JQuery

var jqDeferred = $.ajax('/whatever.json');
 
jqDeferred.then(function(response, statusText, xhrObj) {
  // ...
}, function(xhrObj, textStatus, err) {
  // ...
});
 
В то время как JS обещания игнорируют все кроме первого:
 
jsPromise.then(function(response) {
  // ...
}, function(xhrObj) {
  // ...
});