Definição completa
Promise é um objeto que representa o resultado futuro de uma operação assíncrona. Uma Promise pode estar em três estados: pending (pendente), fulfilled (resolvida com sucesso) ou rejected (rejeitada com erro). Permite encadear operações assíncronas com .then() e tratar erros com .catch(), substituindo o padrão de callbacks aninhados. Junto com async/await, tornou o código assíncrono muito mais legível.
Exemplo de código
// Promise básica
const buscarUsuario = (id) =>
new Promise((resolve, reject) => {
setTimeout(() => {
if (id > 0) resolve({ id, nome: 'Dev' });
else reject(new Error('ID inválido'));
}, 1000);
});
// Com .then() e .catch()
buscarUsuario(1)
.then(user => console.log(user))
.catch(err => console.error(err));
// Com async/await
async function main() {
try {
const user = await buscarUsuario(1);
console.log(user);
} catch (err) {
console.error(err);
}
}