СПРАВОЧНИК
Промисы и async в JavaScript
Promise, async/await, таймеры
Асинхронность в JavaScript позволяет выполнять долгие операции (запросы к серверу, таймеры, чтение файлов) не блокируя основной поток. В этом справочнике собраны промисы (Promise), синтаксис async/await, таймеры и события. Каждая запись содержит сигнатуру, краткое описание и рабочий пример с комментарием // результат.
Таймеры и события 7
AbortController
new AbortController()Позволяет отменять асинхронные операции, например запросы fetch, через сигнал.clearInterval()
clearInterval(intervalId)Останавливает повторяющийся таймер, созданный через setInterval.clearTimeout()
clearTimeout(timeoutId)Отменяет таймер, запланированный через setTimeout, до его срабатывания.fetch()
fetch(url, options?)Выполняет HTTP-запрос и возвращает промис с объектом Response.queueMicrotask()
queueMicrotask(callback)Ставит функцию в очередь микрозадач, выполняемую раньше таймеров.setInterval()
setInterval(callback, delay, ...args)Повторно вызывает функцию через равные интервалы времени.setTimeout()
setTimeout(callback, delay, ...args)Выполняет функцию один раз через указанную задержку в миллисекундах.async/await 4
async
async function name() { ... }Объявляет асинхронную функцию, которая всегда возвращает промис.await
await expressionПриостанавливает async-функцию до выполнения промиса и возвращает его результат.try/catch с await
try { await ... } catch (err) { ... }Обрабатывает ошибки отклонённых промисов через привычный синтаксис try/catch.Параллельный await
await Promise.all([...])Запускает асинхронные операции параллельно вместо последовательного ожидания.Promise: методы 6
Promise.all()
Promise.all(iterable)Ждёт выполнения всех промисов и возвращает массив их результатов. Отклоняется при первой же ошибке.Promise.allSettled()
Promise.allSettled(iterable)Ждёт завершения всех промисов независимо от исхода и возвращает массив с состоянием каждого.Promise.any()
Promise.any(iterable)Возвращает результат первого успешно выполненного промиса, игнорируя отклонённые.Promise.race()
Promise.race(iterable)Возвращает результат первого завершившегося промиса — успешного или с ошибкой.Promise.reject()
Promise.reject(reason)Создаёт уже отклонённый промис с заданной причиной ошибки.Promise.resolve()
Promise.resolve(value)Создаёт уже выполненный промис с заданным значением.Promise: экземпляр 4
new Promise()
new Promise((resolve, reject) => { ... })Создаёт новый промис, оборачивая асинхронную операцию в функцию-исполнитель.Promise.prototype.catch()
promise.catch(onRejected)Перехватывает ошибку в цепочке промисов. Сокращение для then(undefined, onRejected).Promise.prototype.finally()
promise.finally(onFinally)Выполняет колбэк после завершения промиса независимо от результата.Promise.prototype.then()
promise.then(onFulfilled, onRejected?)Добавляет обработчики успеха и ошибки, возвращает новый промис для цепочки.