{"id":858,"date":"2024-05-06T19:26:57","date_gmt":"2024-05-06T22:26:57","guid":{"rendered":"https:\/\/thiagorossi.com.br\/blog\/?p=858"},"modified":"2025-11-13T21:36:30","modified_gmt":"2025-11-14T00:36:30","slug":"programacao-assincrona-e-callbacks","status":"publish","type":"post","link":"https:\/\/thiagorossi.com.br\/blog\/programacao-assincrona-e-callbacks\/","title":{"rendered":"Programa\u00e7\u00e3o Ass\u00edncrona e Callbacks"},"content":{"rendered":"<span class=\"span-reading-time rt-reading-time\" style=\"display: block;\"><span class=\"rt-label rt-prefix\">Tempo de leitura: <\/span> <span class=\"rt-time\"> 3<\/span> <span class=\"rt-label rt-postfix\">minutos<\/span><\/span>\n<p class=\"has-medium-font-size wp-block-paragraph\"><strong>Programa\u00e7\u00e3o Ass\u00edncrona e Callbacks<\/strong>: A programa\u00e7\u00e3o \u00e9, por padr\u00e3o, <strong>s\u00edncrona e <em>single-threaded<\/em><\/strong> (executa uma tarefa por vez, em ordem). No entanto, muitas opera\u00e7\u00f5es\u2014como buscar dados em uma API (requisi\u00e7\u00f5es de rede) ou ler um arquivo\u2014s\u00e3o lentas.<\/p>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">A <strong>Programa\u00e7\u00e3o Ass\u00edncrona<\/strong> \u00e9 a solu\u00e7\u00e3o: ela permite que o motor JavaScript inicie uma opera\u00e7\u00e3o demorada e <strong>continue executando o c\u00f3digo restante<\/strong> sem bloquear a interface. O mecanismo mais b\u00e1sico para gerenciar o resultado dessa opera\u00e7\u00e3o no futuro s\u00e3o os <strong>Callbacks<\/strong>.<\/p>\n\n\n\n<div style=\"height:35px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading has-large-font-size\">1. O Que Significa Ass\u00edncrono?<\/h2>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">Ass\u00edncrono significa &#8220;n\u00e3o simult\u00e2neo&#8221;. No contexto do JavaScript, significa que uma fun\u00e7\u00e3o n\u00e3o retorna imediatamente o resultado, mas promete notificar o restante do c\u00f3digo quando o resultado estiver pronto.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li class=\"has-medium-font-size\"><strong>S\u00edncrono:<\/strong> O c\u00f3digo espera. Ex: <code>let x = 1 + 1;<\/code> (O resultado <code>2<\/code> \u00e9 imediato).<\/li>\n\n\n\n<li class=\"has-medium-font-size\"><strong>Ass\u00edncrono:<\/strong> O c\u00f3digo n\u00e3o espera. Ex: Requisi\u00e7\u00e3o de rede. O programa inicia a requisi\u00e7\u00e3o e segue em frente, esperando um sinal para lidar com a resposta.<\/li>\n<\/ul>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">A assincronia \u00e9 crucial para garantir uma <strong>Melhor Experi\u00eancia do Usu\u00e1rio (UX)<\/strong>, pois evita que a aplica\u00e7\u00e3o &#8220;congele&#8221; enquanto espera por I\/O (Input\/Output).x<\/p>\n\n\n\n<div style=\"height:35px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading has-large-font-size\">2. Callbacks: A Notifica\u00e7\u00e3o Ass\u00edncrona<\/h2>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">Um <strong>Callback<\/strong> \u00e9 simplesmente uma <strong>fun\u00e7\u00e3o que \u00e9 passada como argumento para outra fun\u00e7\u00e3o<\/strong> e que ser\u00e1 executada <em>posteriormente<\/em>, quando uma tarefa ass\u00edncrona for conclu\u00edda.<\/p>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">\u00c9 a forma b\u00e1sica de dizer ao motor JS: &#8220;Quando voc\u00ea terminar a tarefa, execute esta fun\u00e7\u00e3o aqui.&#8221;<\/p>\n\n\n\n<div style=\"height:35px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Exemplo Pr\u00e1tico de Callback<\/h3>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">A fun\u00e7\u00e3o nativa <code>setTimeout<\/code> \u00e9 o exemplo mais simples de assincronia baseada em <em>callbacks<\/em>:<\/p>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">JavaScript<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>console.log(\"1. Come\u00e7a\");\n\n\/\/ setTimeout \u00e9 ass\u00edncrono. Inicia a contagem, mas N\u00c3O BLOQUEIA.\nsetTimeout(function() {\n  console.log(\"3. Callback executado ap\u00f3s 2 segundos.\");\n}, 2000);\n\nconsole.log(\"2. Continua executando imediatamente.\");\n\n\/\/ Ordem de sa\u00edda: 1, 2, 3\n<\/code><\/pre>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">Na pr\u00e1tica, o <em>callback<\/em> \u00e9 frequentemente usado para lidar com o sucesso ou o erro de uma requisi\u00e7\u00e3o de dados.<\/p>\n\n\n\n<div style=\"height:35px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading has-large-font-size\">3. O Problema: A Pir\u00e2mide da Morte (<em>Callback Hell<\/em>)<\/h2>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">O grande desafio da programa\u00e7\u00e3o ass\u00edncrona baseada puramente em <em>callbacks<\/em> \u00e9 a necessidade de <strong>aninhamento<\/strong> quando m\u00faltiplas opera\u00e7\u00f5es ass\u00edncronas dependem umas das outras.<\/p>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">Se a requisi\u00e7\u00e3o 2 s\u00f3 pode ser feita ap\u00f3s o sucesso da requisi\u00e7\u00e3o 1, e assim por diante, o c\u00f3digo se torna rapidamente aninhado de forma profunda, resultando no <em>Callback Hell<\/em> (ou Pir\u00e2mide da Morte).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">JavaScript<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/ O C\u00d3DIGO FICA ILEG\u00cdVEL E INSUSTENT\u00c1VEL\nrequisicao1((resultado1) =&gt; {\n  requisicao2(resultado1, (resultado2) =&gt; {\n    requisicao3(resultado2, (resultado3) =&gt; {\n      \/\/ Dificuldade em propagar erros e manter o c\u00f3digo...\n      requisicao4(resultado3, (resultado4) =&gt; {\n        \/\/ ...\n      });\n    });\n  });\n});\n<\/code><\/pre>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">Al\u00e9m da dificuldade de leitura, a propaga\u00e7\u00e3o e o tratamento de <strong>erros<\/strong> tornam-se extremamente complexos, pois cada n\u00edvel de aninhamento exige um manejo de erro separado.<\/p>\n\n\n\n<div style=\"height:35px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading has-large-font-size\">\u2705 Conclus\u00e3o Programa\u00e7\u00e3o Ass\u00edncrona e Callbacks<\/h2>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">Programa\u00e7\u00e3o Ass\u00edncrona e Callbacks: O entendimento dos <em>callbacks<\/em> \u00e9 o <strong>fundamento<\/strong> da programa\u00e7\u00e3o n\u00e3o bloqueante em JavaScript. Eles foram a solu\u00e7\u00e3o inicial para lidar com opera\u00e7\u00f5es lentas. No entanto, devido aos problemas de legibilidade e gerenciamento de erros impostos pelo <em>Callback Hell<\/em>, o JavaScript moderno introduziu ferramentas mais poderosas. Dominar este conceito \u00e9 essencial para valorizar as pr\u00f3ximas etapas evolutivas: <strong>Promises<\/strong> e <strong><code>async\/await<\/code><\/strong>.<\/p>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">Toda jornada tem um in\u00edcio, e o in\u00edcio para se tornar um desenvolvedor web \u00e9 dominar as seguintes tecnologias, que voc\u00ea encontra aqui mesmo:<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-full\"><a href=\"\/category\/html\"><img loading=\"lazy\" decoding=\"async\" width=\"758\" height=\"426\" src=\"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/04\/html.webp\" alt=\"HTML\" class=\"wp-image-600\" srcset=\"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/04\/html.webp 758w, https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/04\/html-300x169.webp 300w\" sizes=\"auto, (max-width: 758px) 100vw, 758px\" \/><\/a><figcaption class=\"wp-element-caption\">HTML<\/figcaption><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-full\"><a href=\"\/category\/css\"><img loading=\"lazy\" decoding=\"async\" width=\"758\" height=\"426\" src=\"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/04\/Capa-Artigos-Linux.webp\" alt=\"CSS\" class=\"wp-image-702\" srcset=\"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/04\/Capa-Artigos-Linux.webp 758w, https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/04\/Capa-Artigos-Linux-300x169.webp 300w\" sizes=\"auto, (max-width: 758px) 100vw, 758px\" \/><\/a><figcaption class=\"wp-element-caption\">CSS<\/figcaption><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-full\"><a href=\"\/category\/javascript\"><img loading=\"lazy\" decoding=\"async\" width=\"758\" height=\"426\" src=\"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/04\/javascript.webp\" alt=\"Javascript\" class=\"wp-image-804\" srcset=\"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/04\/javascript.webp 758w, https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/04\/javascript-300x169.webp 300w\" sizes=\"auto, (max-width: 758px) 100vw, 758px\" \/><\/a><figcaption class=\"wp-element-caption\">JavaScript<\/figcaption><\/figure>\n<\/div>\n<\/div>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">E se voc\u00ea gosta do nosso conte\u00fado, n\u00e3o deixe de contribuir adquirindo os servi\u00e7os e produtos dos nossos apoiadores e empresas que somos associados:<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/hostinger.com.br\/?REFERRALCODE=1THIAGO62\"><img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"250\" src=\"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/03\/hostinger.png\" alt=\"Hospedagem Hostinger\" class=\"wp-image-92\"\/><\/a><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/amzn.to\/3SNDYlc\"><img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"250\" src=\"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/08\/ofertas-amazon.webp\" alt=\"Ofertas Amazon\" class=\"wp-image-1308\"\/><\/a><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/amzn.to\/3SNKmt0\"><img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"250\" src=\"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/08\/amazonprime.webp\" alt=\"Amazon Prime\" class=\"wp-image-1307\"\/><\/a><\/figure>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p><span class=\"span-reading-time rt-reading-time\" style=\"display: block;\"><span class=\"rt-label rt-prefix\">Tempo de leitura: <\/span> <span class=\"rt-time\"> 3<\/span> <span class=\"rt-label rt-postfix\">minutos<\/span><\/span>Programa\u00e7\u00e3o Ass\u00edncrona e Callbacks: A programa\u00e7\u00e3o \u00e9, por padr\u00e3o, s\u00edncrona e single-threaded (executa uma tarefa&#8230;<\/p>\n","protected":false},"author":1,"featured_media":804,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8],"tags":[],"class_list":["post-858","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-javascript","wpcat-8-id"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.7 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Programa\u00e7\u00e3o Ass\u00edncrona e Callbacks - BLOG THIAGO ROSSI<\/title>\n<meta name=\"description\" content=\"Programa\u00e7\u00e3o Ass\u00edncrona e Callbacks: Neste artigo, vamos explorar o conceito de programa\u00e7\u00e3o ass\u00edncrona, a import\u00e2ncia dos callbacks e como ...\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/thiagorossi.com.br\/blog\/programacao-assincrona-e-callbacks\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Programa\u00e7\u00e3o Ass\u00edncrona e Callbacks - BLOG THIAGO ROSSI\" \/>\n<meta property=\"og:description\" content=\"Programa\u00e7\u00e3o Ass\u00edncrona e Callbacks: Neste artigo, vamos explorar o conceito de programa\u00e7\u00e3o ass\u00edncrona, a import\u00e2ncia dos callbacks e como ...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/thiagorossi.com.br\/blog\/programacao-assincrona-e-callbacks\/\" \/>\n<meta property=\"og:site_name\" content=\"BLOG THIAGO ROSSI\" \/>\n<meta property=\"article:published_time\" content=\"2024-05-06T22:26:57+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-11-14T00:36:30+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/04\/javascript.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"758\" \/>\n\t<meta property=\"og:image:height\" content=\"426\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/webp\" \/>\n<meta name=\"author\" content=\"Thiago Rossi\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Thiago Rossi\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. tempo de leitura\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/programacao-assincrona-e-callbacks\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/programacao-assincrona-e-callbacks\\\/\"},\"author\":{\"name\":\"Thiago Rossi\",\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/#\\\/schema\\\/person\\\/5f28286948ec2afdeb2e044a2196cd87\"},\"headline\":\"Programa\u00e7\u00e3o Ass\u00edncrona e Callbacks\",\"datePublished\":\"2024-05-06T22:26:57+00:00\",\"dateModified\":\"2025-11-14T00:36:30+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/programacao-assincrona-e-callbacks\\\/\"},\"wordCount\":534,\"publisher\":{\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/programacao-assincrona-e-callbacks\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/04\\\/javascript.webp\",\"articleSection\":[\"Javascript\"],\"inLanguage\":\"pt-BR\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/programacao-assincrona-e-callbacks\\\/\",\"url\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/programacao-assincrona-e-callbacks\\\/\",\"name\":\"Programa\u00e7\u00e3o Ass\u00edncrona e Callbacks - BLOG THIAGO ROSSI\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/programacao-assincrona-e-callbacks\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/programacao-assincrona-e-callbacks\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/04\\\/javascript.webp\",\"datePublished\":\"2024-05-06T22:26:57+00:00\",\"dateModified\":\"2025-11-14T00:36:30+00:00\",\"description\":\"Programa\u00e7\u00e3o Ass\u00edncrona e Callbacks: Neste artigo, vamos explorar o conceito de programa\u00e7\u00e3o ass\u00edncrona, a import\u00e2ncia dos callbacks e como ...\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/programacao-assincrona-e-callbacks\\\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/programacao-assincrona-e-callbacks\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/programacao-assincrona-e-callbacks\\\/#primaryimage\",\"url\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/04\\\/javascript.webp\",\"contentUrl\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/04\\\/javascript.webp\",\"width\":758,\"height\":426,\"caption\":\"Javascript\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/programacao-assincrona-e-callbacks\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Programa\u00e7\u00e3o Ass\u00edncrona e Callbacks\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/\",\"name\":\"THIAGO ROSSI\",\"description\":\"Mais de 20 anos de experi\u00eancia no mercado de TI!\",\"publisher\":{\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/#organization\"},\"alternateName\":\"TR | CURSO WEB DEV\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pt-BR\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/#organization\",\"name\":\"THIAGO ROSSI\",\"alternateName\":\"TR | CURSO WEB DEV\",\"url\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/04\\\/new-logo.webp\",\"contentUrl\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/04\\\/new-logo.webp\",\"width\":300,\"height\":300,\"caption\":\"THIAGO ROSSI\"},\"image\":{\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/linkedin.com\\\/in\\\/thiagox86\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/#\\\/schema\\\/person\\\/5f28286948ec2afdeb2e044a2196cd87\",\"name\":\"Thiago Rossi\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/bb28b4665f4162bab9fbef8db5a7f00597f79ab90ece9a67189bb6bce78d5786?s=96&d=retro&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/bb28b4665f4162bab9fbef8db5a7f00597f79ab90ece9a67189bb6bce78d5786?s=96&d=retro&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/bb28b4665f4162bab9fbef8db5a7f00597f79ab90ece9a67189bb6bce78d5786?s=96&d=retro&r=g\",\"caption\":\"Thiago Rossi\"},\"description\":\"Com mais de 20 anos de jornada na tecnologia, minha trajet\u00f3ria evoluiu do ensino t\u00e9cnico \u00e0 arquitetura de sistemas complexos. Hoje, foco minha expertise no desenvolvimento de solu\u00e7\u00f5es de Intelig\u00eancia Artificial nativa e an\u00e1lise de dados p\u00fablicos, utilizando o ecossistema PHP para transformar dados brutos em transpar\u00eancia e efici\u00eancia. Como autor e desenvolvedor, acredito na democratiza\u00e7\u00e3o do conhecimento. Essa vis\u00e3o resultou em uma biblioteca de mais de 530 artigos gratuitos, cobrindo desde a base do WebDev e Infraestrutura at\u00e9 os bastidores da ind\u00fastria de Jogos e IA. No universo de Game Design, sou autor do livro \\\"GDD \u2013 O Guia Definitivo\\\" e documento ativamente meus processos atrav\u00e9s de DevLogs, unindo rigor t\u00e9cnico e criatividade em projetos desenvolvidos com GDevelop 5. Meu compromisso \u00e9 conectar engenharia de ponta com as reais oportunidades do mercado de tecnologia.\",\"sameAs\":[\"https:\\\/\\\/thiagorossi.com.br\\\/blog\",\"https:\\\/\\\/instagram.com\\\/thiagorossix86\",\"https:\\\/\\\/linkedin.com\\\/in\\\/thiagox86\"],\"url\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/author\\\/thiagorossi\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Programa\u00e7\u00e3o Ass\u00edncrona e Callbacks - BLOG THIAGO ROSSI","description":"Programa\u00e7\u00e3o Ass\u00edncrona e Callbacks: Neste artigo, vamos explorar o conceito de programa\u00e7\u00e3o ass\u00edncrona, a import\u00e2ncia dos callbacks e como ...","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/thiagorossi.com.br\/blog\/programacao-assincrona-e-callbacks\/","og_locale":"pt_BR","og_type":"article","og_title":"Programa\u00e7\u00e3o Ass\u00edncrona e Callbacks - BLOG THIAGO ROSSI","og_description":"Programa\u00e7\u00e3o Ass\u00edncrona e Callbacks: Neste artigo, vamos explorar o conceito de programa\u00e7\u00e3o ass\u00edncrona, a import\u00e2ncia dos callbacks e como ...","og_url":"https:\/\/thiagorossi.com.br\/blog\/programacao-assincrona-e-callbacks\/","og_site_name":"BLOG THIAGO ROSSI","article_published_time":"2024-05-06T22:26:57+00:00","article_modified_time":"2025-11-14T00:36:30+00:00","og_image":[{"width":758,"height":426,"url":"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/04\/javascript.webp","type":"image\/webp"}],"author":"Thiago Rossi","twitter_card":"summary_large_image","twitter_misc":{"Escrito por":"Thiago Rossi","Est. tempo de leitura":"4 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/thiagorossi.com.br\/blog\/programacao-assincrona-e-callbacks\/#article","isPartOf":{"@id":"https:\/\/thiagorossi.com.br\/blog\/programacao-assincrona-e-callbacks\/"},"author":{"name":"Thiago Rossi","@id":"https:\/\/thiagorossi.com.br\/blog\/#\/schema\/person\/5f28286948ec2afdeb2e044a2196cd87"},"headline":"Programa\u00e7\u00e3o Ass\u00edncrona e Callbacks","datePublished":"2024-05-06T22:26:57+00:00","dateModified":"2025-11-14T00:36:30+00:00","mainEntityOfPage":{"@id":"https:\/\/thiagorossi.com.br\/blog\/programacao-assincrona-e-callbacks\/"},"wordCount":534,"publisher":{"@id":"https:\/\/thiagorossi.com.br\/blog\/#organization"},"image":{"@id":"https:\/\/thiagorossi.com.br\/blog\/programacao-assincrona-e-callbacks\/#primaryimage"},"thumbnailUrl":"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/04\/javascript.webp","articleSection":["Javascript"],"inLanguage":"pt-BR"},{"@type":"WebPage","@id":"https:\/\/thiagorossi.com.br\/blog\/programacao-assincrona-e-callbacks\/","url":"https:\/\/thiagorossi.com.br\/blog\/programacao-assincrona-e-callbacks\/","name":"Programa\u00e7\u00e3o Ass\u00edncrona e Callbacks - BLOG THIAGO ROSSI","isPartOf":{"@id":"https:\/\/thiagorossi.com.br\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/thiagorossi.com.br\/blog\/programacao-assincrona-e-callbacks\/#primaryimage"},"image":{"@id":"https:\/\/thiagorossi.com.br\/blog\/programacao-assincrona-e-callbacks\/#primaryimage"},"thumbnailUrl":"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/04\/javascript.webp","datePublished":"2024-05-06T22:26:57+00:00","dateModified":"2025-11-14T00:36:30+00:00","description":"Programa\u00e7\u00e3o Ass\u00edncrona e Callbacks: Neste artigo, vamos explorar o conceito de programa\u00e7\u00e3o ass\u00edncrona, a import\u00e2ncia dos callbacks e como ...","breadcrumb":{"@id":"https:\/\/thiagorossi.com.br\/blog\/programacao-assincrona-e-callbacks\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/thiagorossi.com.br\/blog\/programacao-assincrona-e-callbacks\/"]}]},{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/thiagorossi.com.br\/blog\/programacao-assincrona-e-callbacks\/#primaryimage","url":"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/04\/javascript.webp","contentUrl":"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/04\/javascript.webp","width":758,"height":426,"caption":"Javascript"},{"@type":"BreadcrumbList","@id":"https:\/\/thiagorossi.com.br\/blog\/programacao-assincrona-e-callbacks\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/thiagorossi.com.br\/blog\/"},{"@type":"ListItem","position":2,"name":"Programa\u00e7\u00e3o Ass\u00edncrona e Callbacks"}]},{"@type":"WebSite","@id":"https:\/\/thiagorossi.com.br\/blog\/#website","url":"https:\/\/thiagorossi.com.br\/blog\/","name":"THIAGO ROSSI","description":"Mais de 20 anos de experi\u00eancia no mercado de TI!","publisher":{"@id":"https:\/\/thiagorossi.com.br\/blog\/#organization"},"alternateName":"TR | CURSO WEB DEV","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/thiagorossi.com.br\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-BR"},{"@type":"Organization","@id":"https:\/\/thiagorossi.com.br\/blog\/#organization","name":"THIAGO ROSSI","alternateName":"TR | CURSO WEB DEV","url":"https:\/\/thiagorossi.com.br\/blog\/","logo":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/thiagorossi.com.br\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/04\/new-logo.webp","contentUrl":"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/04\/new-logo.webp","width":300,"height":300,"caption":"THIAGO ROSSI"},"image":{"@id":"https:\/\/thiagorossi.com.br\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/linkedin.com\/in\/thiagox86"]},{"@type":"Person","@id":"https:\/\/thiagorossi.com.br\/blog\/#\/schema\/person\/5f28286948ec2afdeb2e044a2196cd87","name":"Thiago Rossi","image":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/secure.gravatar.com\/avatar\/bb28b4665f4162bab9fbef8db5a7f00597f79ab90ece9a67189bb6bce78d5786?s=96&d=retro&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/bb28b4665f4162bab9fbef8db5a7f00597f79ab90ece9a67189bb6bce78d5786?s=96&d=retro&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/bb28b4665f4162bab9fbef8db5a7f00597f79ab90ece9a67189bb6bce78d5786?s=96&d=retro&r=g","caption":"Thiago Rossi"},"description":"Com mais de 20 anos de jornada na tecnologia, minha trajet\u00f3ria evoluiu do ensino t\u00e9cnico \u00e0 arquitetura de sistemas complexos. Hoje, foco minha expertise no desenvolvimento de solu\u00e7\u00f5es de Intelig\u00eancia Artificial nativa e an\u00e1lise de dados p\u00fablicos, utilizando o ecossistema PHP para transformar dados brutos em transpar\u00eancia e efici\u00eancia. Como autor e desenvolvedor, acredito na democratiza\u00e7\u00e3o do conhecimento. Essa vis\u00e3o resultou em uma biblioteca de mais de 530 artigos gratuitos, cobrindo desde a base do WebDev e Infraestrutura at\u00e9 os bastidores da ind\u00fastria de Jogos e IA. No universo de Game Design, sou autor do livro \"GDD \u2013 O Guia Definitivo\" e documento ativamente meus processos atrav\u00e9s de DevLogs, unindo rigor t\u00e9cnico e criatividade em projetos desenvolvidos com GDevelop 5. Meu compromisso \u00e9 conectar engenharia de ponta com as reais oportunidades do mercado de tecnologia.","sameAs":["https:\/\/thiagorossi.com.br\/blog","https:\/\/instagram.com\/thiagorossix86","https:\/\/linkedin.com\/in\/thiagox86"],"url":"https:\/\/thiagorossi.com.br\/blog\/author\/thiagorossi\/"}]}},"_links":{"self":[{"href":"https:\/\/thiagorossi.com.br\/blog\/wp-json\/wp\/v2\/posts\/858","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/thiagorossi.com.br\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/thiagorossi.com.br\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/thiagorossi.com.br\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/thiagorossi.com.br\/blog\/wp-json\/wp\/v2\/comments?post=858"}],"version-history":[{"count":2,"href":"https:\/\/thiagorossi.com.br\/blog\/wp-json\/wp\/v2\/posts\/858\/revisions"}],"predecessor-version":[{"id":4655,"href":"https:\/\/thiagorossi.com.br\/blog\/wp-json\/wp\/v2\/posts\/858\/revisions\/4655"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/thiagorossi.com.br\/blog\/wp-json\/wp\/v2\/media\/804"}],"wp:attachment":[{"href":"https:\/\/thiagorossi.com.br\/blog\/wp-json\/wp\/v2\/media?parent=858"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/thiagorossi.com.br\/blog\/wp-json\/wp\/v2\/categories?post=858"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/thiagorossi.com.br\/blog\/wp-json\/wp\/v2\/tags?post=858"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}