Promise - определение, принцип работы и примеры использования
Promise - это объект, который представляет собой асинхронную операцию и позволяет работать с ее результатом. Промисы идеально подходят для выполнения асинхронных операций, таких как запросы к серверу, чтение/запись файлов и т.д.
Синтаксис создания промиса:
javascript
const promise = new Promise((resolve, reject) => {
// асинхронный код
if (/* успех */) {
resolve(result);
} else {
reject(error);
}
});
Промис может находиться в трех различных состояниях:
- ожидание (pending) - начальное состояние, пока асинхронная операция не выполнена;
- выполнено успешно (resolved) - операция завершена успешно и промис вернул результат;
- выполнено с ошибкой (rejected) - операция завершилась с ошибкой и промис вернул ошибку.
Пример кода, демонстрирующий использование промиса:
javascript
const getData = () => {
return new Promise((resolve, reject) => {
setTimeout(() => {
const data = { name: 'John', age: 30 };
resolve(data);
}, 2000);
});
};
getData()
.then((data) => {
console.log(data); // { name: 'John', age: 30 }
})
.catch((error) => {
console.error(error);
});
В этом примере создается функция getData, которая возвращает новый промис, который будет разрешен через 2 секунды. Затем мы можем использовать методы .then() и .catch() для обработки результата промиса. Если промис был разрешен, мы используем метод .then() для обработки данных. Если возникла ошибка, мы использовали метод .catch() для обработки ошибки.
В результате, мы явно управляем асинхронным кодом и не забываем об ошибках.