Promessas em JavaScript | Explicado

Promessas em JavaScript | Explicado
JavaScript é uma linguagem de programação de alto nível em que o código é executado linha por linha, o que significa que a próxima linha de código é executada apenas quando a linha anterior de código é completamente executada. Para resolver esse problema, o JavaScript oferece funções de retorno de chamada que são equivalentes assíncronos a uma função.

O código assíncrono é executado imediatamente e, diferentemente do código síncrono, não espera que a linha de código anterior terminasse de executar. No entanto, quando estamos lidando com várias operações assíncronas, usar retornos de chamada não é uma boa escolha, pois o código se torna confuso, incontrolável e difícil de entender ou depurar. Portanto, a solução é usar promessas.

Neste post, seguiremos o conceito de promessas em JavaScript junto com exemplos.

O que são promessas?

Uma promessa é uma operação ou tarefa que será concluída no futuro. A sintaxe da promessa é dada abaixo:

Sintaxe da promessa:

Let MyPromise = New Promise (function (resolver, rejeitar)
// código
);

Como podemos ver pela sintaxe da promessa acima, o construtor da promessa assume apenas a função de retorno de chamada como um argumento. Na função de retorno de chamada, temos os argumentos de resolução e rejeição em que a resolução é chamada quando as operações executadas dentro da função de retorno de chamada são bem -sucedidas. No entanto, se a operação não tiver êxito, a rejeição de chamada.

Para dizer, deixe -nos supor que seu aniversário está chegando e sua mãe promete que você recebe um novo laptop para você. Você não recebeu o laptop e não pode ter certeza se receberá o laptop ou não até o seu aniversário. Sua mãe pode comprar um laptop para você ou ela pode mudar de idéia e comprar outra coisa. Esta é uma promessa na língua leiga.

Toda promessa tem três estados ou possibilidades:

  • Pendente: você não tem certeza se receberá ou não o laptop; indefinido.
  • Realizado: sua mãe compra o laptop para você; valor do resultado.
  • Rejeitado: sua mãe não compra um laptop para você; objeto de erro.

Vantagens das promessas

  • Operações assíncronas são tratadas de uma maneira mais simples
  • A legibilidade do código é melhorada, portanto, a depuração se torna fácil
  • O manuseio de erros é mais fácil do que eventos ou retornos de chamada.
  • O fluxo de controle é melhor definido pelo código assíncrono.

Antes de ir aos exemplos de promessa, vamos passar por outro conceito dentro das promessas que são prometidas consumidores cuja função é consumir promessas registrando funções usando:

  • .então (): Quando uma promessa é resolvida ou rejeitada, esse método é chamado.
  • .Catch (): Quando uma promessa é rejeitada ou ocorre um erro durante a execução da promessa, esse método é chamado.

Exemplo:

Neste exemplo, verificaremos se dois números são iguais ou não usando promessas e, com base se essa operação é bem -sucedida ou não, exibiremos a saída.

// promete inicializar
// promete inicializar
varmyPromise = newpromise (function (resolver, rejeitar)
const num1 = 4;
const num2 = 4;
// Compare dois números
if (num1 === num2)
// Quando a operação é bem -sucedida
resolver();
outro
// Quando o erro vem
rejeitar();

);
// promessa consumidores
minha promessa.
então (function ()
console.log ("Operação bem -sucedida");
).
Catch (function ()
console.log ('erro ocorreu');
);
  • Inicializamos a promessa com o nome MyProme e fornecemos uma função de retorno de chamada.
  • Na função, criamos os dois números que queremos comparar
  • Usamos a declaração if-else para ver se os números são iguais ou não
  • E então incluímos os consumidores da promessa
  • Se a operação da promessa for bem -sucedida, então .Em seguida, o consumidor será invocado e o console exibirá a operação bem -sucedida
  • Se uma promessa não for bem -sucedida, você verá uma mensagem que diz "Ocorreu um erro" no console

Como a operação foi bem -sucedida, vemos Operação bem sucedida no log do console.

Vamos agora alterar os números inicializados na função de retorno para ver se a função de captura detecta um erro ou não.

// promete inicializar
varmyPromise = newpromise (function (resolver, rejeitar)
const num1 = 5;
const num2 = 4;
// Compare dois números
if (num1 === num2)
// Quando a operação é bem -sucedida
resolver();
outro
// Quando o erro vem
rejeitar();

);
// promessa consumidores
minha promessa.
então (function ()
console.log ("Operação bem -sucedida");
).
Catch (function ()
console.log ('erro ocorreu');
);

Como os números não são iguais agora, a função rejeit () será invocada e o erro será armazenado em cache pela função de captura:

Conclusão

Uma promessa é uma operação concluída no futuro e ajuda os desenvolvedores a implementar o código assíncrono. As promessas são preferidas sobre as funções de retorno de chamada, pois as promessas são muito mais limpas, melhorando a legibilidade e a depuração do código, ele tem melhor manuseio de erros e várias operações assíncronas são melhor tratadas com promessas. Uma promessa pode ser cumprida, rejeitada ou está pendente.

Neste post, passamos por promessas em JavaScript e explicamos promessas com a ajuda de um exemplo.