O que são promises e como funciona o encadeamento de promises?
Uma
Promise é um objeto que representa a eventual conclusão ou falha de uma operação assíncrona. Está inicialmente em um estado pendente. Ele pode então transitar para um estado fulfilled quando a operação for bem-sucedida ou um estado rejected quando a operação falhar. Aqui está um exemplo de criação de uma Promise:
const aPromise = new Promise((resolve, reject) => {
setTimeout(() => {
resolve("Operation successful!");
}, 1000);
});
Neste exemplo, criamos uma promise que simula uma operação assíncrona usando setTimeout. Após um segundo, a promise é resolvida com a mensagem Operation successful!.
Outra forma de trabalhar com promises é usar os métodos .then e .catch.
O método .then() é usado em uma promise para especificar o que deve acontecer quando a promise é cumprida, enquanto .catch() é usado para tratar quaisquer erros que ocorram. Vamos ver como podemos usar .then e .catch com nossa promise:
aPromise.then((result) => {
console.log(result); // Outputs: "Operation successful!"
}).catch((error) => {
console.error(error);
});
Neste código, a função passada para .then() será chamada com o valor resolvido da promise. Se ocorrer um erro, a função passada para .catch() será chamada em vez disso.
Agora, vamos falar sobre encadeamento de promises. Uma das funcionalidades poderosas das promises é que podemos encadear múltiplas operações assíncronas juntas. Each .then() can return a new promise, allowing you to perform a sequence of asynchronous operations one after the other. Here’s an example:
fetch('https://api.example.com/data')
.then(response => response.json())
.then(data => {
console.log(data);
return fetch('https://api.example.com/data2');
})
.then(response => response.json())
.then(data2 => console.log(data2))
.catch(error => console.error('Error:', error));
Neste exemplo, estamos fazendo duas chamadas de API em sequência. O primeiro .then() analisa a resposta como JSON. O segundo .then() registra os dados e faz outra chamada de API. O terceiro .then() analisa a resposta da segunda chamada da API e o quarto .then() registra esses dados. Se ocorrer um erro em qualquer ponto dessa cadeia, ele será capturado pelo .catch() no final.
É importante notar que .catch() irá capturar erros de qualquer uma das etapas anteriores na cadeia. Isso significa que você não precisa adicionar tratamento de erros a cada etapa individual, o que pode simplificar muito o seu código.Este módulo não possui perguntas. Marque como concluído.