что такое promise js
Promise в js - это специальный объект для работы асинхронными операцями. Он имеет три состояния: ожидание pending
, выполнено успешно resolved
и выполнено с ошибкой rejected
.
Promise помогает нам писать более чистый и понятный асинхронный код, который проще отлаживать и поддерживать. Также, это дает возможность работы с асинхронными операциями в цепочке, с помощью методов .then()
и .catch()
, что часто облегчает работу с потоком данных, обработку ошибок.
В реальной практике Promise широко используется во всех областях где требуется выполнение асинхронных операций, таких как сетевые запросы, работа с базами данных, анимация.
Создадим собственные метод для асинхронного получения данных в виде массива:
const myData = [1, 2, 3, 4, 5];
function fetchData(arr) {
return new Promise((resolve, reject) => {
setTimeout(() => {
if (arr.length > 0) {
resolve(arr);
} else {
reject('Ошибка');
}
}, 1000);
});
}
// Пример использования:
fetchData(myData)
.then((data) => {
console.log(data);
})
.catch((error) => {
console.error(error);
});
В приведенном выше коде мы вызываем функцию fetchData()
, а затем используем метод .then()
для вывода данных в консоль, если Promise
разрешен. Если Promise
отклонен, мы используем метод .catch()
для вывода ошибки в консоль.