Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda Manipulação de Operações Assíncronas com Promises | JavaScript Assíncrono e Integração de API
Domínio Avançado de JavaScript

bookManipulaçã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().

1234567891011121314151617
const 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. });
copy

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

index.js

index.js

index.css

index.css

copy

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?

  1. Evitar Callback Hell: Promises oferecem uma forma mais limpa e legível de lidar com operações assíncronas do que callbacks profundamente aninhados;
  2. Tratamento de Erros: Promises fornecem tratamento de erros integrado com .catch(), facilitando o gerenciamento de operações rejeitadas;
  3. 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()?

question mark

O que é uma Promise?

Select the correct answer

question mark

No código a seguir, o que .catch() fará se houver um erro em um dos callbacks .then()?

Select the correct answer

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 4. Capítulo 3

Pergunte à IA

expand

Pergunte à IA

ChatGPT

Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo

Awesome!

Completion rate improved to 2.22

bookManipulaçã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().

1234567891011121314151617
const 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. });
copy

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

index.js

index.js

index.css

index.css

copy

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?

  1. Evitar Callback Hell: Promises oferecem uma forma mais limpa e legível de lidar com operações assíncronas do que callbacks profundamente aninhados;
  2. Tratamento de Erros: Promises fornecem tratamento de erros integrado com .catch(), facilitando o gerenciamento de operações rejeitadas;
  3. 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()?

question mark

O que é uma Promise?

Select the correct answer

question mark

No código a seguir, o que .catch() fará se houver um erro em um dos callbacks .then()?

Select the correct answer

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 4. Capítulo 3
some-alt