Что такое обещания в 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 вместо функций обратного вызова, чтобы сократить код и сделать его более читаемым.
А у меня на этом все. Спасибо за внимание!
-
- Михаил Русаков
Комментарии (1):
* let promise = applyForVisa(); promises.then(success, error); * Здесь ошибка, нужно указывать: * promise.then(success, error); * Такое впечателние, что пример из этого видео был взят: https://www.youtube.com/watch?v=vNEDPtVchfw
Ответить
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.