Всем привет! В этом материале рассмотрим, что такое обещания(promises) в javascript и как их использовать .

Что такое обещания в ES6.

Всем привет! В этом материале рассмотрим, что такое обещания(promises) в javascript и как их использовать.

До прихода ES6 нам приходилось использовать различные библиотеки, чтобы работать с обещаниями, но теперь они доступны нам в новой версии языка javascript.

Для чего нужны обещания?

Очень часто нам приходится писать код, где что-то одно происходит после того, как произойдет что-то другое. Простой пример:

var button = document.getElementById('button');
button.onclick = function() {
  alert('Кто-то кликнул по кнопке');
};

Обычно для реализации такого алгоритма мы используем функции обратного вызова, как в примере выше.

Другой пример – использование Ajax. Чтобы взаимодействовать с сервером, нам приходится писать очень много функций обратного вызова для подгрузки данных, обработки, проверки и отображения. В итоге наш код становится достаточно объемным и его тяжелее понимать. Чтобы такой проблемы не было, придуманы Promises(обещания).

Как использовать обещания?

Использовать обещания достаточно просто. Давайте сразу все рассматривать на примере.

let promise = applyForVisa();
promises.then(success, error);

У нас есть функция, которая подает заявку на получение визы. Она возвращает обещание, которое мы записываем в переменную. Далее мы используем метод then для обработки, который принимает два параметра: первый – функция, которая вызывается, если все прошло успешно, второй – функция, которая вызывается в случае ошибки.

Для того, чтобы использовать обещания, не обязательно записывать их в переменную, в метод then можно передать только один первый аргумент. Для того, чтобы что-то сделать в случае ошибки, вы можете использовать метод catch. Это удобно тогда, когда у вас много действий делается в случае успеха.

applyForVisa()
  .then(func1)
  .then(func2)
  .catch(error)

Вот так все просто! Так что, используйте promises вместо функций обратного вызова, чтобы сократить код и сделать его более читаемым.

А у меня на этом все. Спасибо за внимание!