В jQuery есть аналог Promise - Deferred объекты. Если не используете jQuery можете найти и вытянуть отдельные функции или найти уже готовый в сети.
(function ($) {
'use strict';
void function main() {
// Пример использования promise
promise(function (resolve, reject) {
resolve('example data');
}).done(function (data) {
console.log(data); //> "example data"
});
// Пример использования promiseAll
var deferreds = [$.Deferred().resolve(1), $.Deferred().resolve(2), $.Deferred().resolve(3)];
promiseAll(deferreds).done(function () {
console.log(arguments); //> [1, 2, 3]
});
}();
function promise(callback) {
var deferred = $.Deferred();
callback && callback(deferred.resolve, deferred.reject);
return deferred;
}
function promiseAll(deferreds) {
return $.when.apply(null, deferreds);
}
}(jQuery));