发布于 2026-01-06 0 阅读
0

JavaScript 中的 Promise

JavaScript 中的 Promise

Você aprendeu sobre 承诺不使用 JavaScript? Ë um assunto que muita gente desiste logo de cara, mas vou tentar descomplicar ao maximo pra você.

1. 序言

Nunca fui de escrever muito, mas ensinando eu aprendo melhor and de quebra posso ajudar quem estiver começando, como diria o @guto citando um grande filósofo:

“Ninguém é tão grande que não possa aprender, nem tão pequeno que não possa ensinar” - 埃索波。

Foi um grande desafio tentar colocar em uma explicativa tudo que eu entendo sobre Promises / Async 等待,mas espero que você goste!

2. Mas que DIABOSéuma“承诺”?

O tal assunto que assusta muitos, porém nem é tão ruim。 Promises são ferramentas poderosas que o Javascript possui para litdar com có​​digos assíncronos.

Uma Promiseé um object usado para processamento assíncrono。 Um Promise (de “promessa”) 代表着 um valor que pode estar disponível agora, num futuro ou nunca
Também pode ser entendido como algo de “consistência eventual”。 Agora vamos falar dos estados de uma 承诺:

3. Estados de uma Promise :

乌玛承诺

  • 待定: estado inicial dela, ou seja, está aguardando o fim da execução do código;
  • 已完成: quando a operação foi realizada e/ou "resolvida" com successo.
  • 被拒绝: quando a operação termina com algum erro。

4. 如何构建一个承诺

构建诺萨斯的承诺,我们可以使用构建器new Promise()来接收 uma função como parametro que recebera dois argumentos, o resolveeoreject

new Promise((resolve, reject) => {});
Enter fullscreen mode Exit fullscreen mode

[...] 决心拒绝美国对最终确定的承诺。

  • Quando 表示决心 usamos 表示função决心
  • Quando 是对rejeitada 的承诺,usamos 是função 的拒绝

4.1 恢复承诺和解决的价值

Vamos criar uma 承诺我们将提供setTimeout1000 英里(1 秒)执行的功能。 Além do setTimeout,vamos criar também uma função chamada generateRandomNumberque gera um número aleatório entre 0 和 10。

//função que gera um número aleatório
const generateRandomNumber = () => Math.round(Math.random() * 10);

const oneSecond = 1000;

// promise resolvida retornando o número aleatório
const resolvedPromiseCallback = () => {
    new Promise((resolve, reject)) {
        setTimeout(() => {
            const randomNumber = generateRandomNumber();
            resolve(randomNumber);
        }, oneSecond);
    }
}
Enter fullscreen mode Exit fullscreen mode

resolvedPromiseCallback查马达许下诺言,最终决定一切,返回号码。

4.2 Retornando um erro quando a Promise é rejeitada

Da mesma forma que podemos retornar um valor quando apromise for resolvida, também podemos retornar um valor quando ela for rejeitada, usando a função reject:

//função que gera um número aleatório
const generateRandomNumber = () => Math.round(Math.random() * 10);

const oneSecond = 1000;

// promise resolvida retornando o número aleatório
const resolvedPromiseCallback = () => {
    new Promise((resolve, reject)) {
        setTimeout(() => {
            const randomNumber = generateRandomNumber();
            resolve(randomNumber);
        }, oneSecond);
    }
}

// promise rejeitada retornando um objeto de erro
const rejectedPromiseCallback = () => {
    new Promise((resolve, reject)) {
        setTimeout(() => {
            const randomNumber = generateRandomNumber();
            reject(new Error(`O número ${randomNumber} é invalido.`))
        }, oneSecond);
    }
}
Enter fullscreen mode Exit fullscreen mode

5. 完成

我希望我们能够继续履行诺言,并希望我们能够重新制定计划。主题非常广泛,我们可以通过 espero que vocês tenham curtido 和 façam um bom uso!

Não esqueçam de encher a garrafinha d'agua e até o próximo artigo!

叽叽喳喳

文章来源:https://dev.to/mrlazarias/promises-em-javascript-1pf