var promise = new Promise(function(resolve, reject) {
// здесь вытворяй что угодно, если хочешь асинхронно, потом…
if (/* ..если всё закончилось успехом */) {
resolve("Работает!");
}
else {
reject(Error("Сломалось"));
}
});
promise.then(function(result) {
console.log(result); // "Обрабатываем результат!"
}, function(err) {
console.log(err); // Ошибка: "Сломалось"
});
var jqDeferred = $.ajax('/whatever.json');
jqDeferred.then(function(response, statusText, xhrObj) {
// ...
}, function(xhrObj, textStatus, err) {
// ...
});
В то время как JS обещания игнорируют все кроме первого:
jsPromise.then(function(response) {
// ...
}, function(xhrObj) {
// ...
});