{"id":118807,"date":"2023-03-05T09:15:00","date_gmt":"2023-03-05T12:15:00","guid":{"rendered":"https:\/\/fluency.io\/br\/blog\/?p=16014"},"modified":"2023-08-01T15:11:34","modified_gmt":"2023-08-01T18:11:34","slug":"promises-no-javascript","status":"publish","type":"post","link":"https:\/\/homolog.fluency.io\/br\/blog\/promises-no-javascript\/","title":{"rendered":"Melhores pr\u00e1ticas para utilizar Promises no JavaScript"},"content":{"rendered":"\n<h3 class=\"wp-block-heading\">Como as Promises tornam o c\u00f3digo ass\u00edncrono mais f\u00e1cil de gerenciar<\/h3>\n\n\n\n<p>As Promises em JavaScript s\u00e3o uma t\u00e9cnica para lidar com c\u00f3digo ass\u00edncrono de maneira mais eficiente e organizada. Elas permitem que voc\u00ea especifique uma a\u00e7\u00e3o que deve ser realizada quando uma opera\u00e7\u00e3o ass\u00edncrona for conclu\u00edda, tornando mais f\u00e1cil gerenciar e encadear v\u00e1rias opera\u00e7\u00f5es ass\u00edncronas em seu c\u00f3digo.<\/p>\n\n\n\n<p>Antes das Promises, era comum o <a href=\"https:\/\/www.simplilearn.com\/tutorials\/javascript-tutorial\/callback-function-in-javascript\" data-type=\"URL\" data-id=\"https:\/\/www.simplilearn.com\/tutorials\/javascript-tutorial\/callback-function-in-javascript\" target=\"_blank\" rel=\"noreferrer noopener\">uso de callbacks<\/a> para lidar com c\u00f3digo ass\u00edncrono. No entanto, o uso excessivo de callbacks tornava o c\u00f3digo dif\u00edcil de ler e entender, al\u00e9m de ser suscet\u00edvel a problemas como callback hell (aninhamento excessivo de callbacks). As Promises foram introduzidas como uma alternativa mais limpa e leg\u00edvel para lidar com opera\u00e7\u00f5es ass\u00edncronas em JavaScript.<\/p>\n\n\n\n<p>Com Promises, voc\u00ea pode facilmente encadear v\u00e1rias opera\u00e7\u00f5es ass\u00edncronas, especificando uma a\u00e7\u00e3o a ser executada quando a opera\u00e7\u00e3o for conclu\u00edda ou se ocorrer um erro. Al\u00e9m disso, Promises tamb\u00e9m permitem que voc\u00ea lide com v\u00e1rios erros em um s\u00f3 lugar, em vez de ter que lidar com erros em cada chamada de callback individualmente.<\/p>\n\n\n\n<p>As Promises em JavaScript s\u00e3o uma t\u00e9cnica poderosa para lidar com c\u00f3digo ass\u00edncrono de maneira mais eficiente e organizada. Com a utiliza\u00e7\u00e3o das Promises, voc\u00ea pode escrever c\u00f3digo mais leg\u00edvel e escal\u00e1vel, al\u00e9m de minimizar a probabilidade de erros e tornar o gerenciamento de c\u00f3digo ass\u00edncrono mais f\u00e1cil e intuitivo.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Compreendendo o funcionamento das Promises em JavaScript<\/h3>\n\n\n\n<p>As Promises em JavaScript s\u00e3o uma t\u00e9cnica poderosa para lidar com c\u00f3digo ass\u00edncrono, mas para utiliz\u00e1-las efetivamente, \u00e9 necess\u00e1rio compreender seu funcionamento e sua sintaxe. Neste texto, vamos explorar os conceitos fundamentais por tr\u00e1s das Promises e como elas podem ser utilizadas em seu c\u00f3digo.<\/p>\n\n\n\n<p>Em termos simples, uma Promise \u00e9 um objeto que representa uma opera\u00e7\u00e3o ass\u00edncrona que ainda n\u00e3o foi conclu\u00edda. Uma Promise pode estar em um de tr\u00eas estados: pendente, resolvida ou rejeitada. Quando uma Promise \u00e9 pendente, ela ainda n\u00e3o foi conclu\u00edda. Quando uma Promise \u00e9 resolvida, significa que a opera\u00e7\u00e3o ass\u00edncrona foi conclu\u00edda com sucesso e a Promise retorna um valor. Quando uma Promise \u00e9 rejeitada, significa que ocorreu um erro na opera\u00e7\u00e3o ass\u00edncrona e a Promise retorna uma raz\u00e3o para o erro.<\/p>\n\n\n\n<p>Para criar uma Promise em JavaScript, voc\u00ea usa o construtor Promise(). Dentro do construtor, voc\u00ea passa uma fun\u00e7\u00e3o que cont\u00e9m a opera\u00e7\u00e3o ass\u00edncrona que voc\u00ea deseja executar. Essa fun\u00e7\u00e3o deve receber dois par\u00e2metros: resolve e reject. O resolve \u00e9 usado para resolver a Promise quando a opera\u00e7\u00e3o ass\u00edncrona \u00e9 conclu\u00edda com sucesso, enquanto o reject \u00e9 usado para rejeitar a Promise caso ocorra um erro.<\/p>\n\n\n\n<p>Abaixo, um exemplo simples de como criar e utilizar uma Promise em JavaScript:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1024\" height=\"539\" src=\"https:\/\/fluency.io\/br\/blog\/wp-content\/uploads\/2023\/03\/carbon-46-1024x539.png\" alt=\"\" class=\"wp-image-16015\" srcset=\"https:\/\/homolog.fluency.io\/br\/wp-content\/uploads\/sites\/3\/2023\/03\/carbon-46-1024x539.png 1024w, https:\/\/homolog.fluency.io\/br\/wp-content\/uploads\/sites\/3\/2023\/03\/carbon-46-949x499.png 949w, https:\/\/homolog.fluency.io\/br\/wp-content\/uploads\/sites\/3\/2023\/03\/carbon-46-768x404.png 768w, https:\/\/homolog.fluency.io\/br\/wp-content\/uploads\/sites\/3\/2023\/03\/carbon-46-798x420.png 798w, https:\/\/homolog.fluency.io\/br\/wp-content\/uploads\/sites\/3\/2023\/03\/carbon-46-515x271.png 515w, https:\/\/homolog.fluency.io\/br\/wp-content\/uploads\/sites\/3\/2023\/03\/carbon-46-150x79.png 150w, https:\/\/homolog.fluency.io\/br\/wp-content\/uploads\/sites\/3\/2023\/03\/carbon-46.png 1064w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Nesse exemplo, criamos uma Promise que espera tr\u00eas segundos antes de resolver com uma mensagem de sucesso. Em seguida, usamos o m\u00e9todo then() para tratar a Promise resolvida e imprimir a mensagem de sucesso no console. Se ocorrer um erro na opera\u00e7\u00e3o ass\u00edncrona, a Promise ser\u00e1 rejeitada e o m\u00e9todo catch() ser\u00e1 acionado, imprimindo o erro no console.<\/p>\n\n\n\n<p>Al\u00e9m do construtor Promise(), existem outros m\u00e9todos \u00fateis para lidar com Promises em JavaScript, como Promise.all() e Promise.race(). O m\u00e9todo Promise.all() permite que voc\u00ea execute v\u00e1rias Promises simultaneamente e aguarde que todas sejam conclu\u00eddas antes de continuar a execu\u00e7\u00e3o do c\u00f3digo. O m\u00e9todo Promise.race() permite que voc\u00ea execute v\u00e1rias Promises simultaneamente e aguarde que a primeira delas seja conclu\u00edda antes de continuar a execu\u00e7\u00e3o do c\u00f3digo.<\/p>\n\n\n\n<p>Compreender o funcionamento das Promises em JavaScript \u00e9 fundamental para escrever c\u00f3digo ass\u00edncrono mais limpo, leg\u00edvel e organizado. Com a utiliza\u00e7\u00e3o de Promises, voc\u00ea pode simplificar o gerenciamento de opera\u00e7\u00f5es ass\u00edncronas em seu c\u00f3digo e minimizar a probabilidade de erros.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Evitando armadilhas comuns ao utilizar Promises<\/h3>\n\n\n\n<p>As Promises em JavaScript s\u00e3o uma t\u00e9cnica poderosa para lidar com c\u00f3digo ass\u00edncrono, mas assim como qualquer outra t\u00e9cnica, existem algumas armadilhas comuns que podem ser evitadas com um pouco de cuidado e aten\u00e7\u00e3o. Neste texto, vamos explorar algumas das armadilhas mais comuns ao utilizar Promises e como evit\u00e1-las.<\/p>\n\n\n\n<p>Uma das armadilhas mais comuns ao utilizar Promises \u00e9 esquecer de lidar com o caso em que a Promise \u00e9 rejeitada. Se a opera\u00e7\u00e3o ass\u00edncrona resultar em um erro e voc\u00ea n\u00e3o lidar com ele adequadamente, isso pode resultar em falhas de aplicativos e comportamentos inesperados. Para evitar essa armadilha, sempre utilize o m\u00e9todo catch() para lidar com erros em suas Promises. Certifique-se de que todos os erros sejam tratados adequadamente para que n\u00e3o ocorram problemas no c\u00f3digo.<\/p>\n\n\n\n<p>Outra armadilha comum ao utilizar Promises \u00e9 n\u00e3o entender completamente o fluxo de execu\u00e7\u00e3o do c\u00f3digo ass\u00edncrono. \u00c9 f\u00e1cil ficar preso em padr\u00f5es de pensamento s\u00edncronos e tentar aplic\u00e1-los a c\u00f3digo ass\u00edncrono. No entanto, \u00e9 importante lembrar que o c\u00f3digo ass\u00edncrono pode ter um fluxo de execu\u00e7\u00e3o n\u00e3o linear. Certifique-se de entender completamente o fluxo de execu\u00e7\u00e3o da sua Promise antes de continuar com o restante do c\u00f3digo.<\/p>\n\n\n\n<p>Uma terceira armadilha comum ao utilizar Promises \u00e9 lidar incorretamente com Promises aninhadas. Promises aninhadas ocorrem quando voc\u00ea aninha v\u00e1rias Promises dentro de outras Promises. Isso pode tornar o c\u00f3digo complexo e dif\u00edcil de entender. Para evitar essa armadilha, utilize o m\u00e9todo then() para encadear Promises em vez de aninh\u00e1-las. Dessa forma, o c\u00f3digo ser\u00e1 mais f\u00e1cil de entender e depurar.<\/p>\n\n\n\n<p>Uma quarta armadilha comum ao utilizar Promises \u00e9 utilizar a palavra-chave &#8220;async&#8221; incorretamente. A palavra-chave &#8220;async&#8221; \u00e9 usada para definir uma fun\u00e7\u00e3o que retorna uma Promise, mas \u00e9 importante lembrar que ela n\u00e3o torna a fun\u00e7\u00e3o ass\u00edncrona automaticamente. \u00c9 necess\u00e1rio utilizar outras t\u00e9cnicas, como o uso da palavra-chave &#8220;await&#8221;, para garantir que a fun\u00e7\u00e3o seja executada assincronamente. Certifique-se de entender completamente o uso correto da palavra-chave &#8220;async&#8221; antes de utiliz\u00e1-la.<\/p>\n\n\n\n<p>Ainda temos, uma quinta armadilha comum ao utilizar Promises \u00e9 esquecer de lidar com Promises pendentes. Promises pendentes ocorrem quando uma opera\u00e7\u00e3o ass\u00edncrona \u00e9 iniciada, mas ainda n\u00e3o foi conclu\u00edda. Se voc\u00ea esquecer de lidar com Promises pendentes, isso pode resultar em vazamentos de mem\u00f3ria e outros problemas. Para evitar essa armadilha, sempre utilize o m\u00e9todo finally() para garantir que as Promises pendentes sejam tratadas adequadamente.<\/p>\n\n\n\n<p>As Promises em JavaScript s\u00e3o uma t\u00e9cnica poderosa para lidar com c\u00f3digo ass\u00edncrono, mas \u00e9 importante estar ciente das armadilhas comuns ao utiliz\u00e1-las. Certifique-se de lidar adequadamente com erros, entender o fluxo de execu\u00e7\u00e3o do c\u00f3digo ass\u00edncrono, evitar Promises aninhadas desnecess\u00e1rias, utilizar corretamente a palavra-chave &#8220;async&#8221; e lidar adequadamente com Promises pendentes.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Utilizando Promises em conjunto com outras funcionalidades ass\u00edncronas do JavaScript<\/h3>\n\n\n\n<p>As Promises s\u00e3o uma das funcionalidades ass\u00edncronas mais utilizadas no JavaScript, mas elas podem ser ainda mais poderosas quando combinadas com outras funcionalidades ass\u00edncronas, como callbacks e async\/await. Neste texto, vamos explorar como utilizar Promises em conjunto com outras funcionalidades ass\u00edncronas do JavaScript para criar c\u00f3digo mais eficiente e robusto.<\/p>\n\n\n\n<p>Callbacks s\u00e3o uma das funcionalidades ass\u00edncronas mais antigas do JavaScript e ainda s\u00e3o amplamente utilizados em muitos projetos. No entanto, os callbacks podem ser dif\u00edceis de manter e ler, especialmente quando v\u00e1rios callbacks s\u00e3o aninhados. Utilizando Promises em conjunto com callbacks, \u00e9 poss\u00edvel simplificar o c\u00f3digo e torn\u00e1-lo mais leg\u00edvel. Em vez de aninhar callbacks, \u00e9 poss\u00edvel utilizar o m\u00e9todo then() da Promise para encadear as chamadas ass\u00edncronas.<\/p>\n\n\n\n<p>Outra funcionalidade ass\u00edncrona do JavaScript que pode ser combinada com Promises \u00e9 o async\/await. O async\/await \u00e9 uma sintaxe mais moderna e leg\u00edvel para lidar com c\u00f3digo ass\u00edncrono em compara\u00e7\u00e3o com callbacks. Quando uma fun\u00e7\u00e3o \u00e9 definida como ass\u00edncrona com a palavra-chave async, ela retorna uma Promise. Em seguida, a palavra-chave await pode ser usada para esperar que a Promise seja resolvida antes de continuar com a execu\u00e7\u00e3o do c\u00f3digo. Ao utilizar Promises em conjunto com async\/await, \u00e9 poss\u00edvel criar c\u00f3digo ass\u00edncrono mais leg\u00edvel e f\u00e1cil de entender.<\/p>\n\n\n\n<p>Al\u00e9m de callbacks e async\/await, as Promises tamb\u00e9m podem ser utilizadas em conjunto com outras funcionalidades ass\u00edncronas do JavaScript, como o m\u00e9todo setTimeout() e o m\u00e9todo setInterval(). O m\u00e9todo setTimeout() \u00e9 utilizado para adiar a execu\u00e7\u00e3o de uma fun\u00e7\u00e3o por um determinado n\u00famero de milissegundos, enquanto o m\u00e9todo setInterval() \u00e9 utilizado para repetir a execu\u00e7\u00e3o de uma fun\u00e7\u00e3o a cada determinado n\u00famero de milissegundos. Utilizando Promises em conjunto com esses m\u00e9todos, \u00e9 poss\u00edvel criar c\u00f3digo mais robusto e previs\u00edvel.<\/p>\n\n\n\n<p>Ao utilizar Promises em conjunto com outras funcionalidades ass\u00edncronas do JavaScript, \u00e9 importante lembrar de lidar adequadamente com erros e evitar armadilhas comuns. Certifique-se de utilizar o m\u00e9todo catch() para lidar com erros em suas Promises, e evite aninhar Promises desnecessariamente. Al\u00e9m disso, \u00e9 importante entender completamente o fluxo de execu\u00e7\u00e3o do c\u00f3digo ass\u00edncrono antes de utilizar Promises em conjunto com outras funcionalidades ass\u00edncronas.<\/p>\n\n\n\n<p>As Promises podem ser ainda mais poderosas quando combinadas com outras funcionalidades ass\u00edncronas do JavaScript, como callbacks e async\/await. Utilize o m\u00e9todo then() para encadear callbacks, a palavra-chave await para esperar pela resolu\u00e7\u00e3o da Promise em fun\u00e7\u00f5es ass\u00edncronas e evite armadilhas comuns ao utilizar Promises em conjunto com outras funcionalidades ass\u00edncronas. Ao utilizar essas t\u00e9cnicas, voc\u00ea pode criar c\u00f3digo mais eficiente e robusto em seus projetos JavaScript.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Invista na sua carreira em Programa\u00e7\u00e3o com a Awari<\/h3>\n\n\n\n<p>Se voc\u00ea deseja aprofundar seu conhecimento em programa\u00e7\u00e3o e aprender mais sobre o desenvolvimento web e de software, n\u00e3o deixe de conferir os cursos da Awari. A plataforma oferece aulas ao vivo e<a href=\"https:\/\/fluency.io\/br\/blog\/curso-mentoria\/?utm_source=blog\" target=\"_blank\" rel=\"noreferrer noopener\"> mentorias individuais<\/a>, al\u00e9m de materiais de estudo e projetos pr\u00e1ticos para que voc\u00ea possa colocar em pr\u00e1tica o que aprendeu. Os cursos abrangem temas como HTML, CSS, JavaScript, Node.js, entre outros, e s\u00e3o ministrados por profissionais experientes na ind\u00fastria de tecnologia.<\/p>\n\n\n\n<p>Com a Awari, voc\u00ea pode adquirir as habilidades necess\u00e1rias para se tornar um desenvolvedor web ou de software completo e competente, com um curr\u00edculo atualizado e adaptado \u00e0s necessidades do mercado. N\u00e3o perca mais tempo e comece a investir em sua carreira de programa\u00e7\u00e3o hoje mesmo!<a href=\"https:\/\/fluency.io\/br\/blog\/?utm_source=blog&amp;utm_medium=link&amp;utm_campaign=home-awari\" target=\"_blank\" rel=\"noreferrer noopener\"> Clique aqui!<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Como as Promises tornam o c\u00f3digo ass\u00edncrono mais f\u00e1cil de gerenciar As Promises em JavaScript s\u00e3o uma t\u00e9cnica para lidar com c\u00f3digo ass\u00edncrono de maneira mais eficiente e organizada. Elas permitem que voc\u00ea especifique uma a\u00e7\u00e3o que deve ser realizada quando uma opera\u00e7\u00e3o ass\u00edncrona for conclu\u00edda, tornando mais f\u00e1cil gerenciar e encadear v\u00e1rias opera\u00e7\u00f5es ass\u00edncronas [&hellip;]<\/p>\n","protected":false},"author":9,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":[186],"meta":{"inline_featured_image":false,"footnotes":""},"categories":[229],"tags":[],"trilha":[],"class_list":["post-118807","post","type-post","status-publish","format-standard","hentry","category-skills","format-artigos"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.6 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Melhores pr\u00e1ticas para utilizar Promises no JavaScript - Fluency.io Brasil<\/title>\n<meta name=\"description\" content=\"Como as Promises tornam o c\u00f3digo ass\u00edncrono mais f\u00e1cil de gerenciar As Promises em JavaScript s\u00e3o uma t\u00e9cnica para lidar com c\u00f3digo ass\u00edncrono de maneira m...\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/homolog.fluency.io\/br\/blog\/promises-no-javascript\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Melhores pr\u00e1ticas para utilizar Promises no JavaScript - Fluency.io Brasil\" \/>\n<meta property=\"og:description\" content=\"Como as Promises tornam o c\u00f3digo ass\u00edncrono mais f\u00e1cil de gerenciar As Promises em JavaScript s\u00e3o uma t\u00e9cnica para lidar com c\u00f3digo ass\u00edncrono de maneira m...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/homolog.fluency.io\/br\/blog\/promises-no-javascript\/\" \/>\n<meta property=\"og:site_name\" content=\"Fluency.io Brasil\" \/>\n<meta property=\"article:published_time\" content=\"2023-03-05T12:15:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-08-01T18:11:34+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"kaue\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. tempo de leitura\" \/>\n\t<meta name=\"twitter:data2\" content=\"9 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/homolog.fluency.io\/br\/blog\/promises-no-javascript\/\",\"url\":\"https:\/\/homolog.fluency.io\/br\/blog\/promises-no-javascript\/\",\"name\":\"Melhores pr\u00e1ticas para utilizar Promises no JavaScript - Fluency.io Brasil\",\"isPartOf\":{\"@id\":\"https:\/\/fluency.io\/br\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/homolog.fluency.io\/br\/blog\/promises-no-javascript\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/homolog.fluency.io\/br\/blog\/promises-no-javascript\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/fluency.io\/br\/blog\/wp-content\/uploads\/2023\/03\/carbon-46-1024x539.png\",\"datePublished\":\"2023-03-05T12:15:00+00:00\",\"dateModified\":\"2023-08-01T18:11:34+00:00\",\"author\":{\"@id\":\"https:\/\/fluency.io\/br\/#\/schema\/person\/7b3b2b50ba17b7f2ad0cce0a40bfa00a\"},\"description\":\"Como as Promises tornam o c\u00f3digo ass\u00edncrono mais f\u00e1cil de gerenciar As Promises em JavaScript s\u00e3o uma t\u00e9cnica para lidar com c\u00f3digo ass\u00edncrono de maneira m...\",\"breadcrumb\":{\"@id\":\"https:\/\/homolog.fluency.io\/br\/blog\/promises-no-javascript\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/homolog.fluency.io\/br\/blog\/promises-no-javascript\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/homolog.fluency.io\/br\/blog\/promises-no-javascript\/#primaryimage\",\"url\":\"https:\/\/fluency.io\/br\/blog\/wp-content\/uploads\/2023\/03\/carbon-46-1024x539.png\",\"contentUrl\":\"https:\/\/fluency.io\/br\/blog\/wp-content\/uploads\/2023\/03\/carbon-46-1024x539.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/homolog.fluency.io\/br\/blog\/promises-no-javascript\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"In\u00edcio\",\"item\":\"https:\/\/homolog.fluency.io\/br\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Melhores pr\u00e1ticas para utilizar Promises no JavaScript\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fluency.io\/br\/#website\",\"url\":\"https:\/\/fluency.io\/br\/\",\"name\":\"Fluency.io Brasil\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fluency.io\/br\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pt-BR\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/fluency.io\/br\/#\/schema\/person\/7b3b2b50ba17b7f2ad0cce0a40bfa00a\",\"name\":\"kaue\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/fluency.io\/br\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/bdd3958fa53019cfd8f789c0a49a730e7ba40a1d20cb42c9ced7646285842479?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/bdd3958fa53019cfd8f789c0a49a730e7ba40a1d20cb42c9ced7646285842479?s=96&d=mm&r=g\",\"caption\":\"kaue\"},\"url\":\"https:\/\/homolog.fluency.io\/br\/author\/kaue\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Melhores pr\u00e1ticas para utilizar Promises no JavaScript - Fluency.io Brasil","description":"Como as Promises tornam o c\u00f3digo ass\u00edncrono mais f\u00e1cil de gerenciar As Promises em JavaScript s\u00e3o uma t\u00e9cnica para lidar com c\u00f3digo ass\u00edncrono de maneira m...","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:\/\/homolog.fluency.io\/br\/blog\/promises-no-javascript\/","og_locale":"pt_BR","og_type":"article","og_title":"Melhores pr\u00e1ticas para utilizar Promises no JavaScript - Fluency.io Brasil","og_description":"Como as Promises tornam o c\u00f3digo ass\u00edncrono mais f\u00e1cil de gerenciar As Promises em JavaScript s\u00e3o uma t\u00e9cnica para lidar com c\u00f3digo ass\u00edncrono de maneira m...","og_url":"https:\/\/homolog.fluency.io\/br\/blog\/promises-no-javascript\/","og_site_name":"Fluency.io Brasil","article_published_time":"2023-03-05T12:15:00+00:00","article_modified_time":"2023-08-01T18:11:34+00:00","twitter_card":"summary_large_image","twitter_misc":{"Escrito por":"kaue","Est. tempo de leitura":"9 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/homolog.fluency.io\/br\/blog\/promises-no-javascript\/","url":"https:\/\/homolog.fluency.io\/br\/blog\/promises-no-javascript\/","name":"Melhores pr\u00e1ticas para utilizar Promises no JavaScript - Fluency.io Brasil","isPartOf":{"@id":"https:\/\/fluency.io\/br\/#website"},"primaryImageOfPage":{"@id":"https:\/\/homolog.fluency.io\/br\/blog\/promises-no-javascript\/#primaryimage"},"image":{"@id":"https:\/\/homolog.fluency.io\/br\/blog\/promises-no-javascript\/#primaryimage"},"thumbnailUrl":"https:\/\/fluency.io\/br\/blog\/wp-content\/uploads\/2023\/03\/carbon-46-1024x539.png","datePublished":"2023-03-05T12:15:00+00:00","dateModified":"2023-08-01T18:11:34+00:00","author":{"@id":"https:\/\/fluency.io\/br\/#\/schema\/person\/7b3b2b50ba17b7f2ad0cce0a40bfa00a"},"description":"Como as Promises tornam o c\u00f3digo ass\u00edncrono mais f\u00e1cil de gerenciar As Promises em JavaScript s\u00e3o uma t\u00e9cnica para lidar com c\u00f3digo ass\u00edncrono de maneira m...","breadcrumb":{"@id":"https:\/\/homolog.fluency.io\/br\/blog\/promises-no-javascript\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/homolog.fluency.io\/br\/blog\/promises-no-javascript\/"]}]},{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/homolog.fluency.io\/br\/blog\/promises-no-javascript\/#primaryimage","url":"https:\/\/fluency.io\/br\/blog\/wp-content\/uploads\/2023\/03\/carbon-46-1024x539.png","contentUrl":"https:\/\/fluency.io\/br\/blog\/wp-content\/uploads\/2023\/03\/carbon-46-1024x539.png"},{"@type":"BreadcrumbList","@id":"https:\/\/homolog.fluency.io\/br\/blog\/promises-no-javascript\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"In\u00edcio","item":"https:\/\/homolog.fluency.io\/br\/"},{"@type":"ListItem","position":2,"name":"Melhores pr\u00e1ticas para utilizar Promises no JavaScript"}]},{"@type":"WebSite","@id":"https:\/\/fluency.io\/br\/#website","url":"https:\/\/fluency.io\/br\/","name":"Fluency.io Brasil","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fluency.io\/br\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-BR"},{"@type":"Person","@id":"https:\/\/fluency.io\/br\/#\/schema\/person\/7b3b2b50ba17b7f2ad0cce0a40bfa00a","name":"kaue","image":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/fluency.io\/br\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/bdd3958fa53019cfd8f789c0a49a730e7ba40a1d20cb42c9ced7646285842479?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/bdd3958fa53019cfd8f789c0a49a730e7ba40a1d20cb42c9ced7646285842479?s=96&d=mm&r=g","caption":"kaue"},"url":"https:\/\/homolog.fluency.io\/br\/author\/kaue\/"}]}},"_links":{"self":[{"href":"https:\/\/homolog.fluency.io\/br\/wp-json\/wp\/v2\/posts\/118807","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/homolog.fluency.io\/br\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/homolog.fluency.io\/br\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/homolog.fluency.io\/br\/wp-json\/wp\/v2\/users\/9"}],"replies":[{"embeddable":true,"href":"https:\/\/homolog.fluency.io\/br\/wp-json\/wp\/v2\/comments?post=118807"}],"version-history":[{"count":0,"href":"https:\/\/homolog.fluency.io\/br\/wp-json\/wp\/v2\/posts\/118807\/revisions"}],"wp:attachment":[{"href":"https:\/\/homolog.fluency.io\/br\/wp-json\/wp\/v2\/media?parent=118807"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/homolog.fluency.io\/br\/wp-json\/wp\/v2\/categories?post=118807"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/homolog.fluency.io\/br\/wp-json\/wp\/v2\/tags?post=118807"},{"taxonomy":"format","embeddable":true,"href":"https:\/\/homolog.fluency.io\/br\/wp-json\/wp\/v2\/format?post=118807"},{"taxonomy":"trilha","embeddable":true,"href":"https:\/\/homolog.fluency.io\/br\/wp-json\/wp\/v2\/trilha?post=118807"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}