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 and 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

Website Creation

The official space for your business on the internet so you can be closer to your customers

Criação de sites
Slide 1

Landing Pages

Your planned sales page for your product and service

Landing Page
Slide 1

Online Stores

Your own store for online sales

Slide 1

Website Maintenance

Guaranteed continuous performance and security

Slide 1

Malware Removal

Protecting and recovering your website

Slide 1

SEO Optimization

More traffic and visibility for your business

Slide 1

Automations for WhatsApp with AI

Your company with intelligent automated service 24 hours a day

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 and 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 and 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 and 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.

en_USEnglish
Scroll to Top
Open chat
Hello
Can we help you?