abrir o menu fechar menu

Promises

Promises são uma maneira de lidar com código assíncrono em JavaScript de forma mais legível e organizada. Uma Promise representa uma operação que ainda não foi concluída, mas que será concluída no futuro, como uma chamada de API, uma consulta a um banco de dados ou uma animação em um elemento da página.

Uma Promise pode estar em um de três estados:

Pendente (pending): quando a Promise ainda não foi concluída;

Resolvida (fulfilled): quando a operação foi bem-sucedida;

Rejeitada (rejected): quando ocorre um erro durante a operação.

A Promise é criada usando a palavra-chave new Promise(), seguida por uma função que recebe dois argumentos: resolve e reject. resolve é uma função que é chamada quando a operação é concluída com sucesso e retorna o valor resultante, enquanto reject é uma função que é chamada quando ocorre um erro e retorna o motivo do erro. Por exemplo:


    const promessa = new Promise((resolve, reject) => {
        const resultado = fazerOperacaoAssincrona();
        if (resultado) {
            resolve(resultado);
        } else {
            reject("Ocorreu um erro!");
        }
        });

Para acessar o resultado da Promise, usamos o método .then() para lidar com a operação bem-sucedida e .catch() para lidar com o erro. Por exemplo:


    promessa
        .then(resultado => {
            console.log(resultado);
        })
        .catch(erro => {
            console.log(erro);
        });

Neste exemplo, usamos .then() para imprimir o resultado no console se a operação for bem-sucedida e .catch() para imprimir o erro se ocorrer um erro.

Além disso, também podemos encadear várias Promises usando o método .then(), criando uma sequência de operações assíncronas que são executadas uma após a outra. Isso é conhecido como "chaining". Por exemplo:


    promessa
        .then(resultado1 => {
            return fazerOutraOperacaoAssincrona(resultado1);
        })
        .then(resultado2 => {
            console.log(resultado2);
        })
        .catch(erro => {
            console.log(erro);
        });

Neste exemplo, executamos uma segunda operação assíncrona após a primeira ter sido concluída com sucesso, e imprimimos o resultado no console.