Middle
Como funciona a Promise em JavaScript?
sobes.tech IA
Resposta da IA
- Objeto que representa a possível conclusão (ou falha) de uma operação assíncrona e o seu valor resultante.
- Estados de uma promessa:
pending: estado inicial, nem cumprido nem rejeitado.fulfilled: indica que a operação foi concluída com sucesso.rejected: indica que a operação terminou com um erro.
- A transição de
pendingparafulfilledourejectedocorre uma única vez e de forma irreversível. - Métodos:
.then(onFulfilled, onRejected): aceita duas funções de callback. A primeira (onFulfilled) é chamada em caso de sucesso, a segunda (onRejected) em caso de erro. Ambos os argumentos são opcionais. Retorna uma nova promessa..catch(onRejected): forma abreviada de.then(null, onRejected). Usada para tratar erros. Retorna uma nova promessa..finally(onFinally): é chamado independentemente do resultado da promessa (sucesso ou erro). Útil para limpar recursos. Retorna uma nova promessa.
- Criação de uma promessa:
new Promise((resolve, reject) => {
// Operação assíncrona
const success = true;
if (success) {
resolve("Operação bem-sucedida!"); // Estado fulfilled
} else {
reject("Algo correu mal..."); // Estado rejected
}
});
- Encadeamento de promessas:
.then(),.catch(),.finally()retornam promessas, permitindo criar cadeias para executar operações assíncronas em sequência.
fetch(url)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Erro:', error));