{"id":95578,"date":"2022-08-23T16:38:09","date_gmt":"2022-08-23T14:38:09","guid":{"rendered":"https:\/\/rmarketingdigital.com\/javascript\/funciones-asincronas\/"},"modified":"2020-12-03T13:56:16","modified_gmt":"2020-12-03T16:56:16","slug":"funciones-asincronas","status":"publish","type":"post","link":"https:\/\/rmarketingdigital.com\/fr\/javascript\/funciones-asincronas\/","title":{"rendered":"Fonctions asynchrones"},"content":{"rendered":"<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_86 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table des mati\u00e8res<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Basculer la table des mati\u00e8res\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Basculer<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewbox=\"0 0 24 24\" version=\"1.2\" baseprofile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/rmarketingdigital.com\/fr\/javascript\/funciones-asincronas\/#%C2%BFQue-cosa-son-las-funciones-de-callbacks\" >Que sont les fonctions de rappel?<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/rmarketingdigital.com\/fr\/javascript\/funciones-asincronas\/#Te-prometo-que-hay-una-forma-mejor\" >Je te promets qu&#039;il y a un meilleur moyen<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/rmarketingdigital.com\/fr\/javascript\/funciones-asincronas\/#aWait-for-it\" >(a)Wait for it<\/a><\/li><\/ul><\/li><\/ul><\/nav><\/div>\n<div itemprop=\"articleBody\">\n<p>Cet article est destin\u00e9 aux personnes qui d\u00e9couvrent le codage asynchrone en JavaScript afin que nous puissions garder les choses simples en \u00e9vitant les gros mots, les fonctions fl\u00e9ch\u00e9es, les mod\u00e8les litt\u00e9raux, etc.<\/p>\n<p><strong>Rappels<\/strong> C&#039;est l&#039;un des concepts les plus utilis\u00e9s du javascript fonctionnel moderne et si vous avez d\u00e9j\u00e0 utilis\u00e9 <strong>jQuery,<\/strong> vous avez probablement d\u00e9j\u00e0 utilis\u00e9 <strong>rappels<\/strong> sans m\u00eame le savoir.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"%C2%BFQue-cosa-son-las-funciones-de-callbacks\"><\/span>Que sont les fonctions de rappel?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Ongle <strong>fonction de rappel<\/strong> dans ses termes les plus simples, c&#039;est une fonction qui est pass\u00e9e \u00e0 une autre fonction, en tant que param\u00e8tre. La <strong>fonction de rappel<\/strong> il est ex\u00e9cut\u00e9 \u00e0 l&#039;int\u00e9rieur de la fonction o\u00f9 il est pass\u00e9 et le r\u00e9sultat final est renvoy\u00e9 \u00e0 l&#039;appelant.<\/p>\n<p>Simple v\u00e9rit\u00e9? Nous allons maintenant impl\u00e9menter une fonction de rappel pour obtenir des r\u00e9sultats de nivellement dans un jeu imaginaire.<\/p>\n<pre data-enlighter-language=\"php\" class=\"EnlighterJSRAW\">\/\/ levelOne () est appel\u00e9 une fonction d&#039;ordre sup\u00e9rieur car \/\/ il accepte une autre fonction en tant que param\u00e8tre. function levelOne (valeur, rappel) {var newScore = valeur + 5; rappel (newScore); } \/\/ Notez qu&#039;il n&#039;est pas obligatoire de faire r\u00e9f\u00e9rence \u00e0 la fonction de rappel (ligne #3) comme rappel, mais elle est nomm\u00e9e comme \u00e7a juste pour une meilleure compr\u00e9hension. function startGame () {var currentScore = 5; console.log (&#039;Jeu commenc\u00e9! Le score actuel est&#039; + currentScore); \/\/ Ici, le deuxi\u00e8me param\u00e8tre que nous passons \u00e0 levelOne est la fonction de rappel, c&#039;est-\u00e0-dire une fonction qui est pass\u00e9e en param\u00e8tre. levelOne (currentScore, function (levelOneReturnedValue) {console.log (&#039;Niveau un atteint! Le nouveau score est&#039; + levelOneReturnedValue);}); } d\u00e9marrer jeu ();\n<\/pre>\n<p>Une fois \u00e0 l&#039;int\u00e9rieur de la fonction <strong>d\u00e9marrer jeu (),<\/strong> nous appelons la fonction <strong>premier niveau ()<\/strong> avec des param\u00e8tres comme <strong>score actuel<\/strong> et notre r\u00f4le <strong>rappeler ().<\/strong><\/p>\n<p>Quand nous appelons <strong>premier niveau ()<\/strong> dans le cadre de la fonction <strong>d\u00e9marrer jeu (),<\/strong> de mani\u00e8re asynchrone, JavaScript ex\u00e9cute la fonction <strong>premier niveau ()<\/strong> et le fil principal continue avec la partie restante de notre code.<\/p>\n<p>Cela signifie que nous pouvons faire toutes sortes d&#039;op\u00e9rations comme obtenir des donn\u00e9es \u00e0 partir d&#039;une API, faire des calculs math\u00e9matiques, etc., ce qui peut prendre beaucoup de temps et par cons\u00e9quent, nous ne bloquerons pas notre thread principal pour cela. Une fois la <strong>fonction (levelOne ())<\/strong> vous avez termin\u00e9 vos op\u00e9rations, vous pouvez ex\u00e9cuter la fonction <strong>rappeler<\/strong> que nous avons travers\u00e9 pr\u00e9c\u00e9demment.<\/p>\n<p>C&#039;est une fonctionnalit\u00e9 tr\u00e8s utile de la programmation de fonctions, car les fonctions <strong>rappels<\/strong> ils nous permettent de g\u00e9rer le code de mani\u00e8re asynchrone sans avoir \u00e0 attendre une r\u00e9ponse. Par exemple, vous pouvez effectuer un appel ajax vers un serveur lent avec une fonction de <strong>rappeler<\/strong> et oubliez-le compl\u00e8tement et continuez avec le code restant. Une fois cet appel ajax r\u00e9solu, la fonction de rappel s&#039;ex\u00e9cute automatiquement.<\/p>\n<p>Mais le <strong>Rappels<\/strong> ils peuvent devenir d\u00e9sagr\u00e9ables s&#039;il y a plusieurs niveaux de rappels \u00e0 ex\u00e9cuter dans une cha\u00eene. Prenons l&#039;exemple ci-dessus et ajoutons quelques niveaux suppl\u00e9mentaires \u00e0 notre jeu.<\/p>\n<pre data-enlighter-language=\"php\" class=\"EnlighterJSRAW\">function levelOne (valeur, rappel) {var newScore = valeur + 5; rappel (newScore); } function levelTwo (valeur, rappel) {var newScore = valeur + 10; rappel (newScore); } function levelThree (valeur, rappel) {var newScore = valeur + 30; rappel (newScore); } \/\/ Notez qu&#039;il n&#039;est pas n\u00e9cessaire de faire r\u00e9f\u00e9rence \u00e0 la fonction de rappel comme un rappel lors de l&#039;appel de levelOne (), levelTwo () ou levelTree (), car elle peut \u00eatre nomm\u00e9e n&#039;importe quoi. function startGame () {var currentScore = 5; console.log (&#039;Jeu commenc\u00e9! Le score actuel est&#039; + currentScore); levelOne (currentScore, function (levelOneReturnedValue) {console.log (&#039;Niveau un atteint! Le nouveau score est&#039; + levelOneReturnedValue); levelTwo (levelOneReturnedValue, function (levelTwoReturnedValue) {console.log (Niveau deux atteint! Le nouveau score est &#039;+ levelTwalueReturn) ; levelThree (levelTwoReturnedValue, function (levelThreeReturnedValue) {console.log (&#039;Niveau trois atteint! Le nouveau score est&#039; + levelThreeReturnedValue);});});}); } d\u00e9marrer jeu ();\n<\/pre>\n<p>Attendez, que vient de se passer? Nous avons ajout\u00e9 deux nouvelles fonctions pour la logique de niveau, <strong>levelTwo ()<\/strong> y <strong>levelThree ().<\/strong> Dans <strong>le rappel de levelOne (ligne #22),<\/strong> fonction d&#039;appel <strong>levelTwo ()<\/strong> avec une fonction de <strong>rappeler<\/strong> et le r\u00e9sultat de <strong>rappeler<\/strong> de <strong>premier niveau.<\/strong> Et la m\u00eame chose se r\u00e9p\u00e8te pour la fonction de niveau trois.<\/p>\n<p>Imaginez maintenant ce que deviendra ce code si nous impl\u00e9mentions la m\u00eame logique pour 10 autres niveaux. \u00cates-vous d\u00e9j\u00e0 en train de paniquer? Eh bien, je fais! \u00c0 mesure que le nombre de fonctions de rappel imbriqu\u00e9es augmente, le code devient plus difficile \u00e0 lire et encore plus difficile \u00e0 d\u00e9boguer.<\/p>\n<p>Ceci est souvent appel\u00e9 affectueusement un <em>rappel de l&#039;enfer<\/em>. Y a-t-il un moyen de sortir de cet enfer de rappel?<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Te-prometo-que-hay-una-forma-mejor\"><\/span>Je te promets qu&#039;il y a un meilleur moyen<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Javascript a commenc\u00e9 \u00e0 prendre en charge <strong>Les promesses de l&#039;ES6<\/strong>. Les promesses sont essentiellement des objets qui repr\u00e9sentent l&#039;ach\u00e8vement (ou l&#039;\u00e9chec) d&#039;une op\u00e9ration asynchrone et sa valeur r\u00e9sultante.<\/p>\n<p>Essayons de r\u00e9\u00e9crire notre exemple de rappel de l&#039;enfer avec des promesses maintenant.<\/p>\n<pre data-enlighter-language=\"php\" class=\"EnlighterJSRAW\">function levelOne (valeur) {var promise, newScore = valeur + 5; return promise = nouvelle promesse (fonction (r\u00e9soudre) {r\u00e9soudre (newScore);}); } function levelTwo (valeur) {var promise, newScore = value + 10; return promise = nouvelle promesse (fonction (r\u00e9soudre) {r\u00e9soudre (newScore);}); } function levelThree (valeur) {var promise, newScore = value + 30; return promise = nouvelle promesse (fonction (r\u00e9soudre) {r\u00e9soudre (newScore);}); } var startGame = new Promise (function (r\u00e9soudre, rejeter) {var currentScore = 5; console.log (&#039;Jeu commenc\u00e9! Le score actuel est&#039; + currentScore); r\u00e9soudre (currentScore);}); \/\/ La r\u00e9ponse de startGame est automatiquement transmise \u00e0 la fonction dans la fen\u00eatre de dialogue suivante. startGame.then (levelOne) .then (function (result) {\/\/ la valeur du r\u00e9sultat est la promesse renvoy\u00e9e par la fonction levelOne console.log (&#039;Vous avez atteint le niveau un! Le nouveau score est&#039; + r\u00e9sultat); return result;}) .then (levelTwo) .then (function (result) {console.log (&#039;Vous avez atteint le niveau deux! Le nouveau score est&#039; + result); return result;}) .then (levelThree) .then ( function (result) {console.log (&#039;Vous avez atteint le niveau trois! Le nouveau score est&#039; + r\u00e9sultat);});\n<\/pre>\n<p>Nous avons r\u00e9\u00e9crit nos fonctions de niveau (un \/ deux \/ trois) pour supprimer les rappels du param\u00e8tre de fonction et au lieu d&#039;appeler la fonction de rappel en leur sein, nous les avons remplac\u00e9s par des promesses.<\/p>\n<p>Une fois r\u00e9solu <strong>d\u00e9marrer jeu,<\/strong> nous pouvons simplement appeler une m\u00e9thode<strong> .ensuite ()<\/strong> dessus et g\u00e9rer le r\u00e9sultat. Nous pouvons encha\u00eener plusieurs promesses les unes apr\u00e8s les autres avec cha\u00eenage <strong>.ensuite ()<\/strong> .<\/p>\n<p>Cela rend tout le code beaucoup plus lisible et plus facile \u00e0 comprendre en termes de ce qui se passe, puis de ce qui se passe ensuite et ainsi de suite.<\/p>\n<p>La raison profonde pour laquelle les promesses sont souvent meilleures est qu&#039;elles sont plus composables, ce qui signifie que la combinaison de plusieurs promesses &quot;fonctionne juste&quot;, alors que la combinaison de plusieurs rappels ne fonctionne souvent pas.<\/p>\n<p>Aussi, lorsque nous avons un seul rappel contre une seule promesse, il est vrai qu&#039;il n&#039;y a pas de diff\u00e9rence significative. C&#039;est lorsque vous avez un million de rappels contre un million de promesses que le code bas\u00e9 sur les promesses a tendance \u00e0 \u00eatre beaucoup mieux.<\/p>\n<p>D&#039;accord, nous avons r\u00e9ussi \u00e0 \u00e9chapper \u00e0 l&#039;enfer des rappels et \u00e0 rendre notre code beaucoup plus lisible avec des promesses. Mais que se passerait-il si je vous disais qu&#039;il existe un moyen de le rendre plus propre et plus lisible?<\/p>\n<h3><span class=\"ez-toc-section\" id=\"aWait-for-it\"><\/span><strong>(a) Attendez<\/strong> pour \u00e7a<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Async-wait est pris en charge en javascript depuis ECMA2017. Ils vous permettent d&#039;\u00e9crire du code bas\u00e9 sur des promesses comme s&#039;il s&#039;agissait de code synchrone, mais sans bloquer le thread principal. Ils rendent votre code asynchrone moins \u00abintelligent\u00bb et plus lisible.<\/p>\n<p>Pour \u00eatre honn\u00eate, les asyncrasies ne sont rien de plus que du sucre syntaxique en plus des promesses, mais elles donnent au code asynchrone l&#039;apparence et le comportement un peu plus du code synchrone - c&#039;est pr\u00e9cis\u00e9ment l\u00e0 que r\u00e9side leur pouvoir.<\/p>\n<p>Si vous utilisez le mot cl\u00e9 Async avant de d\u00e9finir une fonction, vous pouvez utiliser l&#039;option wait dans la fonction. Lorsque vous attendez une promesse, la fonction s&#039;arr\u00eate d&#039;une mani\u00e8re qui ne se bloque pas tant que la promesse n&#039;est pas remplie. Si la promesse est remplie, la valeur est r\u00e9cup\u00e9r\u00e9e. Si la promesse est rejet\u00e9e, la valeur rejet\u00e9e est lib\u00e9r\u00e9e.<\/p>\n<p>Voyons maintenant \u00e0 quoi ressemble notre logique de jeu une fois que nous l&#039;avons r\u00e9\u00e9crit avec <strong>async-attend.<\/strong><\/p>\n<pre data-enlighter-language=\"php\" class=\"EnlighterJSRAW\">function levelOne (valeur) {var promise, newScore = valeur + 5; return promise = nouvelle promesse (fonction (r\u00e9soudre) {r\u00e9soudre (newScore);}); } function levelTwo (valeur) {var promise, newScore = value + 10; return promise = nouvelle promesse (fonction (r\u00e9soudre) {r\u00e9soudre (newScore);}); } function levelThree (valeur) {var promise, newScore = value + 30; return promise = nouvelle promesse (fonction (r\u00e9soudre) {r\u00e9soudre (newScore);}); } \/\/ le mot cl\u00e9 async indique au moteur javascript que toute fonction de cette fonction qui a le mot cl\u00e9 await doit \u00eatre trait\u00e9e comme du code asynchrone et ne doit continuer \u00e0 s&#039;ex\u00e9cuter qu&#039;apr\u00e8s la r\u00e9solution ou l&#039;\u00e9chec de cette fonction.\n<\/pre>\n<pre data-enlighter-language=\"php\" class=\"EnlighterJSRAW\">fonction asynchrone startGame () {var currentScore = 5; console.log (&#039;Jeu commenc\u00e9! Le score actuel est&#039; + currentScore); currentScore = attendre levelOne (currentScore); console.log (&#039;Vous avez atteint le niveau un! Le nouveau score est&#039; + currentScore); currentScore = attendre levelTwo (currentScore); console.log (&#039;Vous avez atteint le niveau deux! Le nouveau score est&#039; + currentScore); currentScore = attendre levelThree (currentScore); console.log (Vous avez atteint le niveau trois! Le nouveau score est &#039;+ currentScore); } d\u00e9marrer jeu ();\n<\/pre>\n<p>Imm\u00e9diatement, notre code devient beaucoup plus lisible, mais il y a plus \u00e0 <strong>Async-wait.<\/strong><\/p>\n<p>La gestion des erreurs est l&#039;une des principales fonctionnalit\u00e9s d&#039;Async-await qui se d\u00e9marque. Nous pouvons enfin g\u00e9rer \u00e0 la fois les erreurs synchrones et asynchrones avec la m\u00eame construction avec try and catch, ce qui \u00e9tait p\u00e9nible avec des promesses sans dupliquer les blocs try-catch.<\/p>\n<p>La deuxi\u00e8me meilleure am\u00e9lioration dans le monde des bonnes vieilles promesses est le d\u00e9bogage de code. Lorsque nous \u00e9crivons des promesses bas\u00e9es sur des fonctions fl\u00e9ch\u00e9es, nous ne pouvons pas d\u00e9finir de points d&#039;arr\u00eat dans nos fonctions fl\u00e9ch\u00e9es, le d\u00e9bogage est donc parfois difficile. Mais avec async-awaits, le d\u00e9bogage est comme un extrait de code synchrone<\/p>\n<\/p><\/div>","protected":false},"excerpt":{"rendered":"<p>Cet article est destin\u00e9 aux personnes qui d\u00e9butent avec le codage asynchrone en JavaScript afin que nous puissions garder les choses simples en \u00e9vitant les gros mots, les fonctions fl\u00e9ch\u00e9es, les litt\u00e9raux de mod\u00e8le, etc. Rappels\u2026<\/p>","protected":false},"author":1,"featured_media":95579,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1374],"tags":[],"class_list":["post-95578","post","type-post","status-publish","format-standard","has-post-thumbnail","category-javascript"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.0 (Yoast SEO v28.2) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Funciones as\u00edncronas - R Marketing Digital<\/title>\n<meta name=\"description\" content=\"Este art\u00edculo est\u00e1 dirigido a personas que empiezan con codificaci\u00f3n as\u00edncrona en JavaScript para que podamos mantener las cosas simples evitando palabras\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/rmarketingdigital.com\/fr\/javascript\/funciones-asincronas\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Funciones as\u00edncronas\" \/>\n<meta property=\"og:description\" content=\"Este art\u00edculo est\u00e1 dirigido a personas que empiezan con codificaci\u00f3n as\u00edncrona en JavaScript para que podamos mantener las cosas simples evitando palabras\" \/>\n<meta property=\"og:url\" content=\"https:\/\/rmarketingdigital.com\/fr\/javascript\/funciones-asincronas\/\" \/>\n<meta property=\"og:site_name\" content=\"R Marketing Digital\" \/>\n<meta property=\"article:published_time\" content=\"2022-08-23T14:38:09+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/rmarketingdigital.com\/wp-content\/uploads\/2020\/12\/1dc7dfdb-2104576.png\" \/>\n\t<meta property=\"og:image:width\" content=\"580\" \/>\n\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"R Marketing Digital\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/rmarketingdigital.com\\\/javascript\\\/funciones-asincronas\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/rmarketingdigital.com\\\/javascript\\\/funciones-asincronas\\\/\"},\"author\":{\"name\":\"R Marketing Digital\",\"@id\":\"https:\\\/\\\/rmarketingdigital.com\\\/#\\\/schema\\\/person\\\/7c0d9782b2977b840b3740f00c69a73e\"},\"headline\":\"Funciones as\u00edncronas\",\"datePublished\":\"2022-08-23T14:38:09+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/rmarketingdigital.com\\\/javascript\\\/funciones-asincronas\\\/\"},\"wordCount\":1114,\"image\":{\"@id\":\"https:\\\/\\\/rmarketingdigital.com\\\/javascript\\\/funciones-asincronas\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/rmarketingdigital.com\\\/wp-content\\\/uploads\\\/2020\\\/12\\\/1dc7dfdb-2104576.png\",\"articleSection\":[\"Javascript\"],\"inLanguage\":\"fr-FR\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/rmarketingdigital.com\\\/javascript\\\/funciones-asincronas\\\/\",\"url\":\"https:\\\/\\\/rmarketingdigital.com\\\/javascript\\\/funciones-asincronas\\\/\",\"name\":\"Funciones as\u00edncronas - R Marketing Digital\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/rmarketingdigital.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/rmarketingdigital.com\\\/javascript\\\/funciones-asincronas\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/rmarketingdigital.com\\\/javascript\\\/funciones-asincronas\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/rmarketingdigital.com\\\/wp-content\\\/uploads\\\/2020\\\/12\\\/1dc7dfdb-2104576.png\",\"datePublished\":\"2022-08-23T14:38:09+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/rmarketingdigital.com\\\/#\\\/schema\\\/person\\\/7c0d9782b2977b840b3740f00c69a73e\"},\"description\":\"Este art\u00edculo est\u00e1 dirigido a personas que empiezan con codificaci\u00f3n as\u00edncrona en JavaScript para que podamos mantener las cosas simples evitando palabras\",\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/rmarketingdigital.com\\\/javascript\\\/funciones-asincronas\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/rmarketingdigital.com\\\/javascript\\\/funciones-asincronas\\\/#primaryimage\",\"url\":\"https:\\\/\\\/rmarketingdigital.com\\\/wp-content\\\/uploads\\\/2020\\\/12\\\/1dc7dfdb-2104576.png\",\"contentUrl\":\"https:\\\/\\\/rmarketingdigital.com\\\/wp-content\\\/uploads\\\/2020\\\/12\\\/1dc7dfdb-2104576.png\",\"width\":580,\"height\":350,\"caption\":\"1dc7dfdb-2104576-6853782-png\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/rmarketingdigital.com\\\/#website\",\"url\":\"https:\\\/\\\/rmarketingdigital.com\\\/\",\"name\":\"R Marketing Digital\",\"description\":\"Agencia SEO | Publicidad redes sociales | Community Management\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/rmarketingdigital.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/rmarketingdigital.com\\\/#\\\/schema\\\/person\\\/7c0d9782b2977b840b3740f00c69a73e\",\"name\":\"R Marketing Digital\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/c5599c203e0120b8ccbff4666af86f35f9b3dcad468a8bc6295313a3964a80be?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/c5599c203e0120b8ccbff4666af86f35f9b3dcad468a8bc6295313a3964a80be?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/c5599c203e0120b8ccbff4666af86f35f9b3dcad468a8bc6295313a3964a80be?s=96&d=mm&r=g\",\"caption\":\"R Marketing Digital\"}}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Funciones as\u00edncronas - R Marketing Digital","description":"Cet article est destin\u00e9 aux personnes qui d\u00e9couvrent le codage asynchrone en JavaScript afin que nous puissions garder les choses simples en \u00e9vitant les mots","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:\/\/rmarketingdigital.com\/fr\/javascript\/funciones-asincronas\/","og_locale":"fr_FR","og_type":"article","og_title":"Funciones as\u00edncronas","og_description":"Este art\u00edculo est\u00e1 dirigido a personas que empiezan con codificaci\u00f3n as\u00edncrona en JavaScript para que podamos mantener las cosas simples evitando palabras","og_url":"https:\/\/rmarketingdigital.com\/fr\/javascript\/funciones-asincronas\/","og_site_name":"R Marketing Digital","article_published_time":"2022-08-23T14:38:09+00:00","og_image":[{"width":580,"height":350,"url":"https:\/\/rmarketingdigital.com\/wp-content\/uploads\/2020\/12\/1dc7dfdb-2104576.png","type":"image\/png"}],"author":"R Marketing Digital","twitter_card":"summary_large_image","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/rmarketingdigital.com\/javascript\/funciones-asincronas\/#article","isPartOf":{"@id":"https:\/\/rmarketingdigital.com\/javascript\/funciones-asincronas\/"},"author":{"name":"R Marketing Digital","@id":"https:\/\/rmarketingdigital.com\/#\/schema\/person\/7c0d9782b2977b840b3740f00c69a73e"},"headline":"Funciones as\u00edncronas","datePublished":"2022-08-23T14:38:09+00:00","mainEntityOfPage":{"@id":"https:\/\/rmarketingdigital.com\/javascript\/funciones-asincronas\/"},"wordCount":1114,"image":{"@id":"https:\/\/rmarketingdigital.com\/javascript\/funciones-asincronas\/#primaryimage"},"thumbnailUrl":"https:\/\/rmarketingdigital.com\/wp-content\/uploads\/2020\/12\/1dc7dfdb-2104576.png","articleSection":["Javascript"],"inLanguage":"fr-FR"},{"@type":"WebPage","@id":"https:\/\/rmarketingdigital.com\/javascript\/funciones-asincronas\/","url":"https:\/\/rmarketingdigital.com\/javascript\/funciones-asincronas\/","name":"Funciones as\u00edncronas - R Marketing Digital","isPartOf":{"@id":"https:\/\/rmarketingdigital.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/rmarketingdigital.com\/javascript\/funciones-asincronas\/#primaryimage"},"image":{"@id":"https:\/\/rmarketingdigital.com\/javascript\/funciones-asincronas\/#primaryimage"},"thumbnailUrl":"https:\/\/rmarketingdigital.com\/wp-content\/uploads\/2020\/12\/1dc7dfdb-2104576.png","datePublished":"2022-08-23T14:38:09+00:00","author":{"@id":"https:\/\/rmarketingdigital.com\/#\/schema\/person\/7c0d9782b2977b840b3740f00c69a73e"},"description":"Cet article est destin\u00e9 aux personnes qui d\u00e9couvrent le codage asynchrone en JavaScript afin que nous puissions garder les choses simples en \u00e9vitant les mots","inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/rmarketingdigital.com\/javascript\/funciones-asincronas\/"]}]},{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/rmarketingdigital.com\/javascript\/funciones-asincronas\/#primaryimage","url":"https:\/\/rmarketingdigital.com\/wp-content\/uploads\/2020\/12\/1dc7dfdb-2104576.png","contentUrl":"https:\/\/rmarketingdigital.com\/wp-content\/uploads\/2020\/12\/1dc7dfdb-2104576.png","width":580,"height":350,"caption":"1dc7dfdb-2104576-6853782-png"},{"@type":"WebSite","@id":"https:\/\/rmarketingdigital.com\/#website","url":"https:\/\/rmarketingdigital.com\/","name":"Marketing num\u00e9rique","description":"Agence de r\u00e9f\u00e9rencement | Publicit\u00e9 sur les r\u00e9seaux sociaux | Gestion de communaut\u00e9","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/rmarketingdigital.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@type":"Person","@id":"https:\/\/rmarketingdigital.com\/#\/schema\/person\/7c0d9782b2977b840b3740f00c69a73e","name":"Marketing num\u00e9rique","image":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/secure.gravatar.com\/avatar\/c5599c203e0120b8ccbff4666af86f35f9b3dcad468a8bc6295313a3964a80be?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/c5599c203e0120b8ccbff4666af86f35f9b3dcad468a8bc6295313a3964a80be?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/c5599c203e0120b8ccbff4666af86f35f9b3dcad468a8bc6295313a3964a80be?s=96&d=mm&r=g","caption":"R Marketing Digital"}}]}},"_links":{"self":[{"href":"https:\/\/rmarketingdigital.com\/fr\/wp-json\/wp\/v2\/posts\/95578","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/rmarketingdigital.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/rmarketingdigital.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/rmarketingdigital.com\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/rmarketingdigital.com\/fr\/wp-json\/wp\/v2\/comments?post=95578"}],"version-history":[{"count":0,"href":"https:\/\/rmarketingdigital.com\/fr\/wp-json\/wp\/v2\/posts\/95578\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/rmarketingdigital.com\/fr\/wp-json\/wp\/v2\/media\/95579"}],"wp:attachment":[{"href":"https:\/\/rmarketingdigital.com\/fr\/wp-json\/wp\/v2\/media?parent=95578"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/rmarketingdigital.com\/fr\/wp-json\/wp\/v2\/categories?post=95578"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/rmarketingdigital.com\/fr\/wp-json\/wp\/v2\/tags?post=95578"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}