Manipulação de Operações Assíncronas com Promises
O que é uma Promise?
Uma Promise é um espaço reservado para um valor futuro, que pode ser:
Uma promise começa como pending e é finalizada permanentemente como fulfilled com um valor ou rejected com um motivo.
Compreendendo os métodos resolve, reject e then()
Criando uma Promise
Para criar uma Promise, é necessário passar uma função com dois parâmetros: resolve e reject. Esses parâmetros são funções utilizadas para indicar se a operação assíncrona foi concluída com sucesso ou falhou.
const myPromise = new Promise((resolve, reject) => {
const success = true; // Simulate whether the task is successful
if (success) {
resolve('Task completed successfully!');
} else {
reject('Task failed.');
}
});
resolve(value): Marca a Promise como concluída (bem-sucedida) e passa o resultado (value);reject(error): Marca a Promise como rejeitada (falha) e passa o erro.
Utilizando then() para tratar Promises resolvidas:
Após criar uma Promise, é possível tratar o resultado utilizando o método then(). Este método é chamado quando a Promise é concluída (resolvida).
myPromise.then(result => {
console.log(result); // Output: Task completed successfully!
});
Neste exemplo, o método then() recebe o valor passado para resolve() e executa o callback com o resultado. Ele é executado apenas se a Promise for resolvida com sucesso.
Tratamento de Erros com .catch()
Promises oferecem uma maneira simples de tratar erros por meio do método .catch(). Se uma Promise for rejeitada (falhar), o erro é capturado e tratado dentro de .catch().
1234567891011121314151617const myPromise = new Promise((resolve, reject) => { const success = false; // Simulate a failure if (success) { resolve('Task completed successfully!'); } else { reject('Task failed.'); } }); myPromise .then(result => { console.log(result); }) .catch(error => { console.error('Error:', error); // Output: Error: Task failed. });
O método catch() é utilizado para tratar erros quando a Promise é rejeitada. Ele captura o erro passado pelo reject() e permite gerenciar cenários de falha.
Encadeamento de Promises para Operações Assíncronas Sequenciais
Um dos principais benefícios das Promises é a capacidade de encadeá-las, permitindo lidar com várias operações assíncronas em sequência sem cair no callback hell. Cada then() retorna uma nova Promise, possibilitando o encadeamento de múltiplas chamadas then() em sequência, com os resultados exibidos no HTML à medida que cada Promise é resolvida.
index.html
index.js
index.css
Operações Sequenciais: Cada then() retorna uma nova Promise, passando o resultado de uma operação para a próxima. Isso permite uma sequência linear e organizada de operações assíncronas que atualizam o texto exibido em HTML.
Tratamento de Erros: O método .catch() trata qualquer erro que ocorra durante qualquer uma das resoluções da Promise. Isso garante que os erros sejam capturados e exibidos na página, independentemente de onde ocorram na cadeia.
Por que usar Promises?
- Evitar Callback Hell: Promises oferecem uma forma mais limpa e legível de lidar com operações assíncronas do que callbacks profundamente aninhados;
- Tratamento de Erros: Promises fornecem tratamento de erros integrado com
.catch(), facilitando o gerenciamento de operações rejeitadas; - Encadeamento Sequencial: Promises permitem executar várias operações assíncronas em sequência usando encadeamento, tornando o código mais fácil de acompanhar e manter.
1. O que é uma Promise?
2. No código a seguir, o que .catch() fará se houver um erro em um dos callbacks .then()?
Obrigado pelo seu feedback!
Pergunte à IA
Pergunte à IA
Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo
Awesome!
Completion rate improved to 2.22
Manipulação de Operações Assíncronas com Promises
Deslize para mostrar o menu
O que é uma Promise?
Uma Promise é um espaço reservado para um valor futuro, que pode ser:
Uma promise começa como pending e é finalizada permanentemente como fulfilled com um valor ou rejected com um motivo.
Compreendendo os métodos resolve, reject e then()
Criando uma Promise
Para criar uma Promise, é necessário passar uma função com dois parâmetros: resolve e reject. Esses parâmetros são funções utilizadas para indicar se a operação assíncrona foi concluída com sucesso ou falhou.
const myPromise = new Promise((resolve, reject) => {
const success = true; // Simulate whether the task is successful
if (success) {
resolve('Task completed successfully!');
} else {
reject('Task failed.');
}
});
resolve(value): Marca a Promise como concluída (bem-sucedida) e passa o resultado (value);reject(error): Marca a Promise como rejeitada (falha) e passa o erro.
Utilizando then() para tratar Promises resolvidas:
Após criar uma Promise, é possível tratar o resultado utilizando o método then(). Este método é chamado quando a Promise é concluída (resolvida).
myPromise.then(result => {
console.log(result); // Output: Task completed successfully!
});
Neste exemplo, o método then() recebe o valor passado para resolve() e executa o callback com o resultado. Ele é executado apenas se a Promise for resolvida com sucesso.
Tratamento de Erros com .catch()
Promises oferecem uma maneira simples de tratar erros por meio do método .catch(). Se uma Promise for rejeitada (falhar), o erro é capturado e tratado dentro de .catch().
1234567891011121314151617const myPromise = new Promise((resolve, reject) => { const success = false; // Simulate a failure if (success) { resolve('Task completed successfully!'); } else { reject('Task failed.'); } }); myPromise .then(result => { console.log(result); }) .catch(error => { console.error('Error:', error); // Output: Error: Task failed. });
O método catch() é utilizado para tratar erros quando a Promise é rejeitada. Ele captura o erro passado pelo reject() e permite gerenciar cenários de falha.
Encadeamento de Promises para Operações Assíncronas Sequenciais
Um dos principais benefícios das Promises é a capacidade de encadeá-las, permitindo lidar com várias operações assíncronas em sequência sem cair no callback hell. Cada then() retorna uma nova Promise, possibilitando o encadeamento de múltiplas chamadas then() em sequência, com os resultados exibidos no HTML à medida que cada Promise é resolvida.
index.html
index.js
index.css
Operações Sequenciais: Cada then() retorna uma nova Promise, passando o resultado de uma operação para a próxima. Isso permite uma sequência linear e organizada de operações assíncronas que atualizam o texto exibido em HTML.
Tratamento de Erros: O método .catch() trata qualquer erro que ocorra durante qualquer uma das resoluções da Promise. Isso garante que os erros sejam capturados e exibidos na página, independentemente de onde ocorram na cadeia.
Por que usar Promises?
- Evitar Callback Hell: Promises oferecem uma forma mais limpa e legível de lidar com operações assíncronas do que callbacks profundamente aninhados;
- Tratamento de Erros: Promises fornecem tratamento de erros integrado com
.catch(), facilitando o gerenciamento de operações rejeitadas; - Encadeamento Sequencial: Promises permitem executar várias operações assíncronas em sequência usando encadeamento, tornando o código mais fácil de acompanhar e manter.
1. O que é uma Promise?
2. No código a seguir, o que .catch() fará se houver um erro em um dos callbacks .then()?
Obrigado pelo seu feedback!