O que é JavaScript promises

O que é JavaScript promises?

JavaScript promises são objetos que representam a eventual conclusão ou falha de uma operação assíncrona. Elas permitem que os desenvolvedores escrevam código de forma mais legível e gerenciem melhor o fluxo de execução, especialmente quando lidam com operações que podem demorar, como requisições a APIs ou leitura de arquivos. A promessa pode estar em um dos três estados: pendente, cumprida ou rejeitada.

Estados de uma Promise

Uma promise pode estar em um dos três estados: pendente, cumprida ou rejeitada. Quando uma promise é criada, ela começa em estado pendente. Se a operação assíncrona for bem-sucedida, a promise é cumprida, passando ao estado cumprido. Caso ocorra um erro, a promise é rejeitada, mudando para o estado rejeitado. Esses estados permitem que os desenvolvedores tratem o resultado da operação de forma adequada.

Como criar uma Promise

Para criar uma promise em JavaScript, utiliza-se o construtor Promise, que aceita uma função chamada de executor. Essa função recebe duas funções como parâmetros: resolve e reject. A função resolve é chamada quando a operação é bem-sucedida, enquanto reject é chamada em caso de erro. Veja um exemplo simples:

Homeschooling Mockup
Homeschooling Mockup
Homeschooling Mockup
Homeschooling Mockup
Homeschooling Mockup
Slide 1

Criação de Sites

O espaço oficial de seu negócio na internet para você estar mais próximo ao seu cliente

Criação de sites
Slide 1

Landing Pages

Sua página de vendas planejada para seu produto e serviço

Landing Page
Slide 1

Lojas Virtuais

Sua própria loja para vendas online

Slide 1

Manutenção de Sites

Garantia de performance e segurança contínuas

Slide 1

Remoção de Malwares

Proteção e recuperação do seu site

Slide 1

Otimização para SEO

Mais tráfego e visibilidade para seu negócio

Slide 1

Automações para WhatsApp com IA

Sua empresa com atendimento automatizado inteligente 24hs/dia

previous arrow
next arrow
const minhaPromise = new Promise((resolve, reject) => {
    // lógica assíncrona
});

Consumindo Promises

Para consumir uma promise, utilizamos os métodos then e catch. O método then é chamado quando a promise é cumprida, enquanto o catch é chamado quando a promise é rejeitada. Isso permite que o desenvolvedor trate os resultados e erros de forma clara e organizada. Um exemplo de consumo de uma promise seria:

minhaPromise
    .then(resultado => {
        console.log('Sucesso:', resultado);
    })
    .catch(erro => {
        console.error('Erro:', erro);
    });

Encadeamento de Promises

Uma das grandes vantagens das promises é a capacidade de encadeá-las. Isso significa que você pode executar uma série de operações assíncronas em sequência, onde cada operação depende do resultado da anterior. O encadeamento é feito simplesmente retornando uma nova promise dentro do método then. Isso facilita a leitura e manutenção do código, evitando o chamado “callback hell”.

Promise.all e Promise.race

JavaScript também oferece métodos estáticos como Promise.all e Promise.race para trabalhar com múltiplas promises. O Promise.all aceita um array de promises e retorna uma nova promise que é cumprida quando todas as promises do array são cumpridas, ou rejeitada se qualquer uma delas for rejeitada. Já o Promise.race retorna uma promise que é cumprida ou rejeitada assim que a primeira promise do array for cumprida ou rejeitada, permitindo um controle mais dinâmico sobre operações assíncronas.

Tratamento de Erros com Promises

O tratamento de erros em promises é uma parte crucial do seu uso. Quando uma promise é rejeitada, o erro pode ser capturado usando o método catch. Além disso, é possível encadear múltiplos then e catch para lidar com diferentes tipos de resultados e erros, proporcionando uma estrutura clara para o fluxo de execução e tratamento de exceções.

Promises e Async/Await

Com a introdução do async/await no JavaScript, o uso de promises se tornou ainda mais intuitivo. A palavra-chave async antes de uma função permite que você use await dentro dela, o que faz com que a execução da função pause até que a promise seja cumprida. Isso resulta em um código que se assemelha a um código síncrono, facilitando a leitura e a manutenção. Veja um exemplo:

async function exemplo() {
    try {
        const resultado = await minhaPromise;
        console.log('Resultado:', resultado);
    } catch (erro) {
        console.error('Erro:', erro);
    }
}

Considerações Finais sobre Promises

JavaScript promises são uma ferramenta poderosa para gerenciar operações assíncronas de forma eficiente e legível. Compreender como funcionam os estados, como criar e consumir promises, e como lidar com erros são habilidades essenciais para qualquer desenvolvedor que trabalhe com JavaScript. Além disso, a integração com async/await torna o trabalho com promises ainda mais simples e intuitivo, permitindo que os desenvolvedores escrevam código mais limpo e fácil de entender.

Rolar para cima
Abrir bate-papo
Olá
Podemos ajudá-lo?