Как фронтенд-разработчик, если вы еще не слышали о Promise в Javascript, что ж…
По крайней мере, вы уже слышали об этом! И это действительно удивительно.

Промис — это стандартный способ обработки асинхронных операций, таких как вызов API. Он всеобъемлющий, но элегантный, особенно с серией асинхронных операций и обработкой связанных с ними ошибок.
Он широко поддерживается современными браузерами. Но, конечно, IE не из современных, поэтому не забудьте найти promise-polyfill для своих пользователей IE.

В этом блоге я расскажу об основных способах использования Promise, давайте начнем.
Функция promise будет выглядеть так:

new Promise(function (resolve, reject) {
    var data = asyncCall(); // could be API calls
    if( data ) {
        resolve(data); // success
    } else {
        reject(data); // fail
    }
});

Во-первых, нам нужно объявить, что это «новый» промис, вы можете поместить свои асинхронные вызовы и сообщить промису, как обрабатывать ответ с помощью «разрешить» и «отклонить». Вы можете рассматривать `resolve` и `reject` как две функции обратного вызова, `resolve`, когда вы подтверждаете, что получили то, что ожидаете, и отказываться, если произошло что-то плохое.

Вот краткий пример, Поиграй здесь

var aync1 = function() {
    return new Promise(function(resolve, reject){
        // Wait 1s and alert
        setTimeout(function(){
            resolve("Hello Promise");
        }, 1000);
    });
}

aync1().then(function (resp) {
    alert(resp);
});

Если что-то идет не так, вы хотите поймать и справиться с этим, поиграйте здесь.

var aync2 = function() {
    return new Promise(function(resolve, reject){
        // Wait 2s and alert
        setTimeout(function(){
            // pretend we got something wrong.
            reject("error");
        }, 1000);
    });
}
 
aync2().then(function (resp) {
    alert("This will not be called");
}).catch(function(err){
    alert(err);
});

Здесь я быстро продемонстрировал базовое использование Promise, вы можете подумать: «О, обратные вызовы тоже могут делать то же самое». Вы правы, но в следующем блоге я покажу настоящую мощь Promise, спасибо за внимание.

Первоначально опубликовано на https://www.loginradius.com.