Зачем это спрашивают
Promise — объект, представляющий результат асинхронной операции, который появится в будущем: успех (fulfill) или ошибка (reject).
const p = new Promise((resolve, reject) => {
setTimeout(() => resolve(42), 100);
});
p.then((value) => console.log(value))
.catch((err) => console.error(err))
.finally(() => console.log("done"));
Зачем поверх колбэков
- цепочки
.then вместо вложенности;
- единый канал ошибок через
.catch;
- композиция:
Promise.all, allSettled, race, any;
- основа для
async/await.
Promise — не потоки: это абстракция над уже асинхронными событиями/таймерами/I/O в event loop.
На собеседовании: определение → состояния → отличие от callback hell → связь с async/await.