ANÚNCIO

~/questoes/programacao

O que é uma promise em JavaScript?

Responda, confira o feedback e use o resultado para orientar sua revisão.
Para fixar

O que é uma Promise em JavaScript

Conceito central

Uma promise é um objeto especial que representa algo que vai acontecer no futuro — como uma operação que pode levar tempo para terminar. Ela permite que você escreva código que funciona mesmo quando precisa esperar por um resultado que ainda não está pronto.

Por que essa resposta faz sentido

Uma promise é exatamente um objeto que encapsula o resultado futuro de uma operação assíncrona. Ela começa pendente, depois se resolve com um valor ou é rejeitada com um erro, permitindo que você trabalhe com esses resultados de forma organizada.

Armadilhas comuns

  • Confundir promise com a garantia de sucesso — uma promise pode ser rejeitada, e você precisa sempre tratar erros com .catch().
  • Não entender que uma promise é um objeto que precisa ser 'consumida' com .then() ou await — sem isso, o código não aguarda o resultado.
  • Achar que criar uma promise executa a operação automaticamente — na verdade, a função que está dentro da promise é executada imediatamente, mas o resultado só fica pronto depois.

Entenda as alternativas

A

Uma promise não garante que o código será executado sem erros. Ela pode ser rejeitada (ficar em estado de erro), e cabe a você tratar essas rejeições com .catch() ou try/catch.

B

Esta é a definição correta. Uma promise é um objeto que representa o resultado de uma operação que pode levar tempo — como uma requisição de rede ou leitura de arquivo — e permite que você trabalhe com esse resultado quando ele estiver pronto.

C

Uma promise não precisa ser executada antes de outras funções. A ordem de execução é controlada por você usando .then(), .catch() ou async/await, não é automática.

D

Uma promise não é um tipo de variável imutável. Após criada, você não modifica a promise em si, mas ela muda de estado interno (pendente → resolvida ou rejeitada) conforme a operação progride.

Dica prática: Teste criando uma promise simples que resolve após 2 segundos: new Promise((resolve) => { setTimeout(() => resolve('Pronto!'), 2000) }).then(resultado => console.log(resultado)). Assim você vê na prática como a operação fica pendente e depois o resultado aparece.

Revise pensando: Se uma promise é rejeitada, qual método você usa para capturar o erro — .then() ou .catch()?