{"id":331,"date":"2024-02-08T15:06:20","date_gmt":"2024-02-08T18:06:20","guid":{"rendered":"https:\/\/desvendandoocodigo.com.br\/?p=331"},"modified":"2024-02-13T18:04:08","modified_gmt":"2024-02-13T21:04:08","slug":"funcoes-assincronas-e-callbacks-em-javascript","status":"publish","type":"post","link":"https:\/\/desvendandoocodigo.com.br\/?p=331","title":{"rendered":"Fun\u00e7\u00f5es Ass\u00edncronas e Callbacks em JavaScript"},"content":{"rendered":"\n<p>Hoje vamos falar sobre duas t\u00e9cnicas fundamentais em JavaScript para lidar com opera\u00e7\u00f5es ass\u00edncronas: fun\u00e7\u00f5es ass\u00edncronas e callbacks. <\/p>\n\n\n\n<p>Esses recursos s\u00e3o essenciais para lidar com tarefas que podem levar algum tempo para serem conclu\u00eddas, como requisi\u00e7\u00f5es de rede, acesso a banco de dados e manipula\u00e7\u00e3o de arquivos.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Fun\u00e7\u00f5es Ass\u00edncronas<\/strong><\/h2>\n\n\n\n<p>As fun\u00e7\u00f5es ass\u00edncronas, oferecem uma maneira elegante de escrever c\u00f3digo ass\u00edncrono de forma s\u00edncrona. <\/p>\n\n\n\n<p>Quando marcamos uma fun\u00e7\u00e3o como ass\u00edncrona com a palavra-chave <code><strong>async<\/strong><\/code>, ela automaticamente retorna uma <strong>Promise<\/strong>, permitindo que voc\u00ea use o <strong><code>await<\/code> <\/strong>dentro dela para esperar que outras fun\u00e7\u00f5es ass\u00edncronas sejam resolvidas.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"782\" height=\"678\" src=\"https:\/\/desvendandoocodigo.com.br\/wp-content\/uploads\/2024\/02\/image-3.png\" alt=\"\" class=\"wp-image-335\" srcset=\"https:\/\/desvendandoocodigo.com.br\/wp-content\/uploads\/2024\/02\/image-3.png 782w, https:\/\/desvendandoocodigo.com.br\/wp-content\/uploads\/2024\/02\/image-3-300x260.png 300w, https:\/\/desvendandoocodigo.com.br\/wp-content\/uploads\/2024\/02\/image-3-768x666.png 768w\" sizes=\"(max-width: 782px) 100vw, 782px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Callbacks<\/strong><\/h2>\n\n\n\n<p>Os callbacks s\u00e3o uma t\u00e9cnica cl\u00e1ssica em JavaScript para lidar com opera\u00e7\u00f5es ass\u00edncronas. <\/p>\n\n\n\n<p>Basicamente, um callback \u00e9 uma fun\u00e7\u00e3o que \u00e9 passada como argumento para outra fun\u00e7\u00e3o e executada quando a opera\u00e7\u00e3o ass\u00edncrona \u00e9 conclu\u00edda.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"526\" height=\"546\" src=\"https:\/\/desvendandoocodigo.com.br\/wp-content\/uploads\/2024\/02\/image-2.png\" alt=\"\" class=\"wp-image-334\" srcset=\"https:\/\/desvendandoocodigo.com.br\/wp-content\/uploads\/2024\/02\/image-2.png 526w, https:\/\/desvendandoocodigo.com.br\/wp-content\/uploads\/2024\/02\/image-2-289x300.png 289w\" sizes=\"(max-width: 526px) 100vw, 526px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Diferen\u00e7as e Uso<\/strong><\/h2>\n\n\n\n<p>Enquanto as fun\u00e7\u00f5es ass\u00edncronas oferecem uma sintaxe mais limpa e f\u00e1cil de entender, os callbacks s\u00e3o mais flex\u00edveis e t\u00eam sido usados historicamente em JavaScript para lidar com tarefas ass\u00edncronas. \u00c9 importante entender ambos os conceitos, pois voc\u00ea encontrar\u00e1 ambos em projetos de c\u00f3digo-base existentes e em bibliotecas de terceiros.<\/p>\n\n\n\n<p>No entanto, com o advento das fun\u00e7\u00f5es ass\u00edncronas e do <code>await<\/code>, muitos desenvolvedores optam por esse estilo de codifica\u00e7\u00e3o por ser mais leg\u00edvel e menos propenso a erros devido a problemas de callback hell.<\/p>\n\n\n\n<p>Espero que esta explica\u00e7\u00e3o tenha sido \u00fatil! Se tiverem alguma d\u00favida ou quiserem compartilhar suas experi\u00eancias com fun\u00e7\u00f5es ass\u00edncronas e callbacks, deixem nos coment\u00e1rios abaixo. <\/p>\n\n\n\n<p>Fiquem ligados para mais conte\u00fado sobre JavaScript e programa\u00e7\u00e3o.<\/p>\n\n\n\n<p>At\u00e9 a pr\u00f3xima!<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"B\u00e1sico de Fun\u00e7\u00e3o Ass\u00edncrona e Callback  | JavaScript\" width=\"960\" height=\"540\" src=\"https:\/\/www.youtube.com\/embed\/AizMMiEsenQ?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Hoje vamos falar sobre duas t\u00e9cnicas fundamentais em JavaScript para lidar com opera\u00e7\u00f5es ass\u00edncronas: fun\u00e7\u00f5es ass\u00edncronas e callbacks. Esses recursos s\u00e3o essenciais para lidar com tarefas que podem levar algum tempo para serem conclu\u00eddas, como requisi\u00e7\u00f5es de rede, acesso a banco de dados e manipula\u00e7\u00e3o de arquivos. Fun\u00e7\u00f5es Ass\u00edncronas As fun\u00e7\u00f5es ass\u00edncronas, oferecem uma maneira elegante de escrever c\u00f3digo ass\u00edncrono de forma s\u00edncrona. Quando marcamos uma fun\u00e7\u00e3o como ass\u00edncrona com a palavra-chave async, ela automaticamente retorna uma Promise, permitindo que voc\u00ea use o await dentro dela para esperar que outras fun\u00e7\u00f5es ass\u00edncronas sejam resolvidas. Callbacks Os callbacks s\u00e3o uma t\u00e9cnica cl\u00e1ssica em JavaScript para lidar com opera\u00e7\u00f5es ass\u00edncronas. Basicamente, um callback \u00e9 uma fun\u00e7\u00e3o que \u00e9 passada como argumento para outra fun\u00e7\u00e3o e executada quando a opera\u00e7\u00e3o ass\u00edncrona \u00e9 conclu\u00edda. Diferen\u00e7as e Uso Enquanto as fun\u00e7\u00f5es ass\u00edncronas oferecem uma sintaxe mais limpa e f\u00e1cil de entender, os callbacks s\u00e3o mais flex\u00edveis e t\u00eam sido usados historicamente em JavaScript para lidar com tarefas ass\u00edncronas. \u00c9 importante entender ambos os conceitos, pois voc\u00ea encontrar\u00e1 ambos em projetos de c\u00f3digo-base existentes e em bibliotecas de terceiros. No entanto, com o advento das fun\u00e7\u00f5es ass\u00edncronas e do await, muitos desenvolvedores optam por esse estilo de codifica\u00e7\u00e3o por ser mais leg\u00edvel e menos propenso a erros devido a problemas de callback hell. Espero que esta explica\u00e7\u00e3o tenha sido \u00fatil! Se tiverem alguma d\u00favida ou quiserem compartilhar suas experi\u00eancias com fun\u00e7\u00f5es ass\u00edncronas e callbacks, deixem nos coment\u00e1rios abaixo. Fiquem ligados para mais conte\u00fado sobre JavaScript e programa\u00e7\u00e3o. At\u00e9 a pr\u00f3xima!<\/p>\n","protected":false},"author":1,"featured_media":513,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[1],"tags":[],"_links":{"self":[{"href":"https:\/\/desvendandoocodigo.com.br\/index.php?rest_route=\/wp\/v2\/posts\/331"}],"collection":[{"href":"https:\/\/desvendandoocodigo.com.br\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/desvendandoocodigo.com.br\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/desvendandoocodigo.com.br\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/desvendandoocodigo.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=331"}],"version-history":[{"count":4,"href":"https:\/\/desvendandoocodigo.com.br\/index.php?rest_route=\/wp\/v2\/posts\/331\/revisions"}],"predecessor-version":[{"id":516,"href":"https:\/\/desvendandoocodigo.com.br\/index.php?rest_route=\/wp\/v2\/posts\/331\/revisions\/516"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/desvendandoocodigo.com.br\/index.php?rest_route=\/wp\/v2\/media\/513"}],"wp:attachment":[{"href":"https:\/\/desvendandoocodigo.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=331"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/desvendandoocodigo.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=331"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/desvendandoocodigo.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=331"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}