Обещания / 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) { // ... });