Entendendo는 JavaScript를 약속하지 않습니다.

Ao trabalhar com chamadas assíncronas no JavaScript em algum momento você já se deparou com uma promise, talvez até sem saber exatamente que estava utilizando uma, mas por de trás dos panos ela estava lá.

Uma promise é o objeto retornado de uma chamada assíncrona que possui a promessa de um valor, seja ele um valor futuro, immediato ou que nunca existirá. São exatamente estes os estados de uma 약속:

  • 보류 중(미정): ainda não foi finalizada, mas também não foi rejeitada

  • 이행(realizada): sucesso na operação.

  • 거부됨(rejeitado): falha na operação.

  • Quando uma promise é realizada significa que a chamada assíncrona foi finalizada e não foi encontrado nenhum erro na sua execução, neste momento ela terá um valor, caso essa chamada seja rejeitada, ela terá um motivo (erro).

    약속의 결정




    let promise = new Promise((resolve, reject) => {
        console.log("Comando de dentro da promise")
    });
    console.log(promise)
    




    Perceba que por ela não ter sido resolvida ainda, ela apresenta o status de pending.

    Resolvendo uma 약속




    promise = new Promise((resolve, reject) => {
        resolve(10)
    });
    console.log(promise)
    




    Agora passando o valor 10 para a função resolve teremos a promise com o status de fulfilled e valor 10.

    Rejeitando uma promise




    promise = new Promise((resolve, reject) => {
        reject("Erro na promise")
    })
    console.log(promise)
    




    주의할 점은 약속을 지키지 않고 동기를 부여할 수 있다는 점에 유의하십시오.

    Trabalhando com 약속 na prática



    Na prática usamos promise para retorno de uma chamada de API, uma escrita ou leitura de arquivo assíncrona, uma Consulta ao banco de dados utilizando JavaScript, enfim, são N situações, mas todas envolvem um retorno que é assíncrono.

    Vamos utilizar a API do JSON Placeholder para buscarmos dados de forma assíncrona.

    fetch('https://jsonplaceholder.typicode.com/users/1')
      .then(response => response.json())
      .then(user => console.log(user))
    



    É utilizado aqui a função fetch(nativa do JavaScript) para fazer a chamada para a API de usuários, o retorno dela é uma promise que ao ser resolvida(quando a chamada assíncrona terminar a execução) chamará a primeira instrução then que tem como função transformar 응답은 JSON으로 이루어지며 결과는 다음과 같습니다.
    Sendo assim na segunda instrução then teremos o JSON com os dados de usuário sendo passados ​​como parâmetro para ser utilizado dentro desta função, neste caso os dados são exibidos no console.

    약속의 오류




    fetch('https://jsonplaceholder.typicode.com/users/1')
      .then(response => response.json())
      .then(user => {
        if(user.id == 2)
            console.log(user)
        else
            throw new Error("Não é o usuário de ID 2") 
      }).catch((error) => console.log(error.message))
    



    Aqui fazemos a mesma chamada feita anteriormente buscando pelo usuário de id = 1 , então dentro do bloco then é feita uma verificação em que caso o id seja 2 são exibidos os dados do usuário, caso contrário é lançada uma exceção, e esta é tratada no bloco catch, em que neste exemplo será exibida no console, mas em uma aplicação real geralmente seria neste ponto que ela seria enviada para o arquivo de log do sistema, ou apresentado algum tipo de mensagem para o usuário comunicando sobre o erro.

    고려사항



    Note que nesta forma de uso das promise temos a possibilidade de aninhar várias funções de callback para uma mesma promise, isso ajuda muito na questão de organização do código, pois de acordo com a arquitetura utilizada pode-se aplicar diferentes regras de negócio em cada bloco 그 다음에.
    mas 존재는 tratar를 약속으로 사용하여 async/await 또는 qual falaremos em um próximo post를 사용할 수 있습니다.

    Obrigado por ter lido até aqui, qualquer dúvida ou sugestão deixa aqui nos commentários. 음 포르테 아브라소!

    좋은 웹페이지 즐겨찾기