JS 비동기: 비동기/대기 - pt-br

Esse post é o ultimo da série sobre JS Async, 3 posts para explicar e mostrar como trabalhar com dados assíncronos em JavaScript.

Versão original publicada na minha página pessoal.



Você pode conferir os outros 2 artigos anteriores:
  • JS Async: Promises
  • JS Async: Callbacks

  • Hoje falaremos sobre o async/await e veremos alguns exemplos de como e o que podemos fazer com ele:

    비동기



    ES2017과 비교하여 async foi 구현 키워드입니다. Ela possibilita criarmos funções naturalmente assíncronas utilizando a seguinte notação:

    async function myAsyncFunction() {}
    


    Algo Importante e ainda mais interessante acerca dessa implementationação é que toda async function retorna uma Promise , 인터페이스로 todas 사용 que já conhecemos no 1064506 Vejamos um exemplo para entender melhor:

    async function myAsyncFunction() {
      return "Hello!";
    }
    
    myAsyncFunction().then(payload => {
      console.log(payload); // Hello!
    });
    

    async utilizam os valores de sucesso como os valores que vão ser dispostos dentro do pipeline .then na promise que vai ser retornada, em casoar de necessitarro .catch , vejamos um 예시:

    async function myAsyncFunctionWithError() {
      throw "something wrong happen";
    }
    
    myAsyncFunctionWithError().catch(error => {
      console.log(error); // something wrong happen
    });
    


    성실한 약속 기다리다



    O uso do await é restrito apenas dentro de uma função declarada com a keyword async, basicamente o que ele faz é esperar o valor resposta de uma Promise ou converte o valor em uma Promise resolvida.

    async function myAsyncFunction() {
      const payload = await { name: "felipe", age: 22 };
      console.log(payload); // { name: 'felipe', age: 22 }
    }
    
    myAsyncFunction();
    


    Nos casos onde não estamos retornando nenhum valor da nossa função, a chamada de execução se mantém como as chamadas de funções normais sem o uso do .then .

    Capturando erros com try/catch



    O await semper espera o valor de sucesso da promise, logo não temos como capturar o erro diretamente, para fazer isso temos que fazer uso do try/catch que recebe reject ovalor :

    async function myAsyncErrorFunction() {
      throw "ops, something wrong happen";
    }
    
    async function myAsyncFunction() {
      try {
        const response = await myAsyncErrorFunction();
      } catch (error) {
        console.log(error); // ops, something wrong happen
      }
    }
    
    myAsyncFunction();
    


    Executando esse bloco, o erro acontece dentro da promise try e é capturada dentro do bloco myAsyncErrorFunction do try/catch.

    Em resumo, o uso em conjunto das Implementações fazem com que nosso codigo seja extremamente mais simples e legível, fazendo com que tratar dados assíncronos (ou síncronos) seja de forma mais direta e eficaz

    Espero que tenha gostado dessa pequena série, nos vemos nos próximo post!

    🔭

    좋은 웹페이지 즐겨찾기