Back to questions
Junior — Middle
83
Можете объяснить концепцию промисов в JavaScript и как они используются для обработки асинхронных операций?
Answer from AI
sobes.tech AI
Промисы в JavaScript — это объект, который представляет результат асинхронной операции и позволяет работать с ним, когда операция завершится (успешно или с ошибкой). Они помогают избежать «адского колбэка» (callback hell) и делают код более читаемым.
Промис может находиться в трёх состояниях:
- pending (ожидание) — операция ещё не завершена;
- fulfilled (выполнено) — операция успешно завершена;
- rejected (отклонено) — операция завершилась с ошибкой.
Для создания промиса используется конструктор Promise, который принимает функцию с двумя параметрами: resolve и reject. Когда асинхронная операция завершается, вызывается resolve (успех) или reject (ошибка).
Пример использования промиса:
function fetchData() {
return new Promise((resolve, reject) => {
setTimeout(() => {
const success = true; // имитация результата
if (success) {
resolve('Данные получены');
} else {
reject('Ошибка при получении данных');
}
}, 1000);
});
}
fetchData()
.then(result => {
console.log(result); // 'Данные получены'
})
.catch(error => {
console.error(error);
});
Также промисы можно цеплять друг за другом, что упрощает последовательную обработку асинхронных операций.