{"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\/de\/javascript\/funciones-asincronas\/","title":{"rendered":"Asynchrone Funktionen"},"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\">Inhalt<\/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=\"Inhaltsverzeichnis umschalten\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Umschalten<\/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\/de\/javascript\/funciones-asincronas\/#%C2%BFQue-cosa-son-las-funciones-de-callbacks\" >Was sind R\u00fcckruffunktionen?<\/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\/de\/javascript\/funciones-asincronas\/#Te-prometo-que-hay-una-forma-mejor\" >Ich verspreche Ihnen, dass es einen besseren Weg gibt<\/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\/de\/javascript\/funciones-asincronas\/#aWait-for-it\" >(a)Wait for it<\/a><\/li><\/ul><\/li><\/ul><\/nav><\/div>\n<div itemprop=\"articleBody\">\n<p>Dieser Artikel richtet sich an Personen, die mit der asynchronen Codierung in JavaScript noch nicht vertraut sind, damit wir die Dinge einfach halten k\u00f6nnen, indem wir gro\u00dfe W\u00f6rter, Pfeilfunktionen, Literalvorlagen usw. vermeiden.<\/p>\n<p><strong>R\u00fcckrufe<\/strong> Es ist eines der am h\u00e4ufigsten verwendeten Konzepte des modernen funktionalen Javascript und wenn Sie es jemals verwendet haben <strong>jQuery,<\/strong> du hast wohl schon benutzt <strong>R\u00fcckrufe<\/strong> ohne es zu wissen.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"%C2%BFQue-cosa-son-las-funciones-de-callbacks\"><\/span>Was sind R\u00fcckruffunktionen?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>EIN <strong>R\u00fcckruffunktion<\/strong> Im einfachsten Sinne ist es eine Funktion, die als Parameter an eine andere Funktion \u00fcbergeben wird. Das <strong>R\u00fcckruffunktion<\/strong> Es wird innerhalb der Funktion ausgef\u00fchrt, in der es \u00fcbergeben wird, und das Endergebnis wird an den Aufrufer zur\u00fcckgegeben.<\/p>\n<p>Einfache Wahrheit? Jetzt werden wir eine R\u00fcckruffunktion implementieren, um Leveling-Ergebnisse in einem imagin\u00e4ren Spiel zu erhalten.<\/p>\n<pre data-enlighter-language=\"php\" class=\"EnlighterJSRAW\">\/\/ levelOne () wird als Funktion h\u00f6herer Ordnung bezeichnet, \/\/ weil es eine andere Funktion als Parameter akzeptiert. Funktion levelOne (Wert, R\u00fcckruf) {var newScore = Wert + 5; R\u00fcckruf (newScore); } \/\/ Beachten Sie, dass es nicht zwingend erforderlich ist, die R\u00fcckruffunktion (Zeile #3) als R\u00fcckruf zu bezeichnen, sie wird jedoch nur zum besseren Verst\u00e4ndnis so benannt. Funktion startGame () {var currentScore = 5; console.log (&#039;Spiel gestartet! Aktuelle Punktzahl ist&#039; + aktuellerScore); \/\/ Hier ist der zweite Parameter, den wir an levelOne \u00fcbergeben, die R\u00fcckruffunktion, dh eine Funktion, die als Parameter \u00fcbergeben wird. levelOne (currentScore, function (levelOneReturnedValue) {console.log (&#039;Level 1 erreicht! Neue Punktzahl ist&#039; + levelOneReturnedValue);}); } Spiel beginnen ();\n<\/pre>\n<p>Einmal in der Funktion <strong>Spiel beginnen (),<\/strong> Wir nennen die Funktion <strong>Level eins ()<\/strong> mit Parametern wie <strong>Momentaner Punktestand<\/strong> und unsere Rolle <strong>R\u00fcckrufen ().<\/strong><\/p>\n<p>Wenn wir anrufen <strong>Level eins ()<\/strong> im Rahmen der Funktion <strong>Spiel beginnen (),<\/strong> asynchron f\u00fchrt JavaScript die Funktion aus <strong>Level eins ()<\/strong> und der Haupt-Thread f\u00e4hrt mit dem verbleibenden Teil unseres Codes fort.<\/p>\n<p>Dies bedeutet, dass wir alle Arten von Operationen ausf\u00fchren k\u00f6nnen, z. B. Daten von einer API abrufen, mathematische Berechnungen durchf\u00fchren usw., die alle sehr zeitaufw\u00e4ndig sein k\u00f6nnen und daher unseren Hauptthread daf\u00fcr nicht blockieren. Sobald die <strong>Funktion (levelOne ())<\/strong> Wenn Sie mit Ihren Operationen fertig sind, k\u00f6nnen Sie die Funktion ausf\u00fchren <strong>R\u00fcckrufen<\/strong> das haben wir vorher durchgemacht.<\/p>\n<p>Dies ist eine sehr n\u00fctzliche Funktion der Funktionsprogrammierung, da die Funktionen <strong>R\u00fcckrufe<\/strong> Sie erm\u00f6glichen es uns, den Code asynchron zu behandeln, ohne auf eine Antwort warten zu m\u00fcssen. Beispielsweise k\u00f6nnen Sie einen Ajax-Aufruf an einen langsamen Server mit der Funktion von t\u00e4tigen <strong>R\u00fcckrufen<\/strong> und vergessen Sie es vollst\u00e4ndig und fahren Sie mit dem verbleibenden Code fort. Sobald dieser Ajax-Anruf aufgel\u00f6st ist, wird die R\u00fcckruffunktion automatisch ausgef\u00fchrt.<\/p>\n<p>Aber die <strong>R\u00fcckrufe<\/strong> Sie k\u00f6nnen unangenehm werden, wenn in einer Kette mehrere R\u00fcckrufebenen ausgef\u00fchrt werden m\u00fcssen. Nehmen wir das obige Beispiel und f\u00fcgen unserem Spiel einige weitere Level hinzu.<\/p>\n<pre data-enlighter-language=\"php\" class=\"EnlighterJSRAW\">Funktion levelOne (Wert, R\u00fcckruf) {var newScore = Wert + 5; R\u00fcckruf (newScore); } function levelTwo (Wert, R\u00fcckruf) {var newScore = Wert + 10; R\u00fcckruf (newScore); } function levelThree (Wert, R\u00fcckruf) {var newScore = Wert + 30; R\u00fcckruf (newScore); } \/\/ Beachten Sie, dass es beim Aufrufen von levelOne (), levelTwo () oder levelTree () nicht erforderlich ist, die R\u00fcckruffunktion als R\u00fcckruf zu bezeichnen, da sie beliebig benannt werden kann. Funktion startGame () {var currentScore = 5; console.log (&#039;Spiel gestartet! Aktuelle Punktzahl ist&#039; + currentScore); levelOne (currentScore, function (levelOneReturnedValue) {console.log (&#039;Level 1 erreicht! Neue Punktzahl ist&#039; + levelOneReturnedValue); levelTwo (levelOneReturnedValue); function (levelTwoReturnedValue) {console.log (Level 2 erreicht! Neue Punktzahl ist &#039;+ levelTwoReturned ; levelThree (levelTwoReturnedValue, function (levelThreeReturnedValue) {console.log (&#039;Stufe drei erreicht! Neue Punktzahl ist&#039; + levelThreeReturnedValue);});});}); } Spiel beginnen ();\n<\/pre>\n<p>Warten Sie, was ist gerade passiert? Wir haben zwei neue Funktionen f\u00fcr die Ebenenlogik hinzugef\u00fcgt: <strong>levelTwo ()<\/strong> y <strong>levelThree ().<\/strong> Innerhalb <strong>R\u00fcckruf von levelOne (Zeile #22),<\/strong> Funktion aufrufen <strong>levelTwo ()<\/strong> mit einer Funktion von <strong>R\u00fcckrufen<\/strong> und das Ergebnis von <strong>R\u00fcckrufen<\/strong> von <strong>Level eins.<\/strong> Und das Gleiche wird f\u00fcr die Funktion der Stufe drei wiederholt.<\/p>\n<p>Stellen Sie sich nun vor, wie dieser Code aussehen wird, wenn wir dieselbe Logik f\u00fcr weitere 10 Ebenen implementieren. Bist du schon in Panik? Nun, das tue ich! Mit zunehmender Anzahl verschachtelter R\u00fcckruffunktionen wird der Code schwieriger zu lesen und noch schwieriger zu debuggen.<\/p>\n<p>Dies wird oft liebevoll als bezeichnet <em>R\u00fcckruf H\u00f6lle<\/em>. Gibt es einen Ausweg aus dieser R\u00fcckrufh\u00f6lle?<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Te-prometo-que-hay-una-forma-mejor\"><\/span>Ich verspreche Ihnen, dass es einen besseren Weg gibt<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Javascript begann zu unterst\u00fctzen <strong>Versprechen von ES6<\/strong>. Versprechen sind im Grunde genommen Objekte, die den Abschluss (oder den Fehler) einer asynchronen Operation und den daraus resultierenden Wert darstellen.<\/p>\n<p>Versuchen wir jetzt, unser Beispiel f\u00fcr einen H\u00f6llenr\u00fcckruf mit Versprechungen neu zu schreiben.<\/p>\n<pre data-enlighter-language=\"php\" class=\"EnlighterJSRAW\">Funktion levelOne (Wert) {var Versprechen, newScore = Wert + 5; R\u00fcckgabeversprechen = neues Versprechen (Funktion (Aufl\u00f6sung) {Aufl\u00f6sung (newScore);}); } function levelTwo (value) {var versprechen, newScore = value + 10; R\u00fcckgabeversprechen = neues Versprechen (Funktion (Aufl\u00f6sung) {Aufl\u00f6sung (newScore);}); } function levelThree (value) {var versprechen, newScore = value + 30; R\u00fcckgabeversprechen = neues Versprechen (Funktion (Aufl\u00f6sung) {Aufl\u00f6sung (newScore);}); } var startGame = neues Versprechen (Funktion (aufl\u00f6sen, ablehnen) {var currentScore = 5; console.log (&#039;Spiel gestartet! Aktuelle Punktzahl ist&#039; + currentScore); aufl\u00f6sen (currentScore);}); \/\/ Die Antwort von startGame wird automatisch an die Funktion im nachfolgenden Dialogfenster \u00fcbergeben. startGame.then (levelOne) .then (function (result) {\/\/ Der Wert des Ergebnisses ist das Versprechen, das von der levelOne-Funktion console.log zur\u00fcckgegeben wurde (&#039;Sie haben Level 1 erreicht! Die neue Punktzahl ist&#039; + result); return Ergebnis;}) .then (levelTwo) .then (Funktion (Ergebnis) {console.log (&#039;Sie haben Level 2 erreicht! Die neue Punktzahl ist&#039; + Ergebnis); Ergebnis zur\u00fcckgeben;}) .then (levelThree) .then ( function (result) {console.log (&#039;Du hast Level 3 erreicht! Die neue Punktzahl ist&#039; + result);});\n<\/pre>\n<p>Wir haben unsere Ebenenfunktionen (Eins \/ Zwei \/ Drei) neu geschrieben, um die R\u00fcckrufe aus dem Funktionsparameter zu entfernen, und anstatt die darin enthaltene R\u00fcckruffunktion aufzurufen, haben wir sie durch Versprechen ersetzt.<\/p>\n<p>Sobald es gel\u00f6st ist <strong>Spiel beginnen,<\/strong> Wir k\u00f6nnen einfach eine Methode aufrufen<strong> .dann ()<\/strong> darauf und behandeln das Ergebnis. Wir k\u00f6nnen mehrere Versprechen nacheinander verketten <strong>.dann ()<\/strong> .<\/p>\n<p>Dies macht den gesamten Code viel lesbarer und verst\u00e4ndlicher in Bezug auf das, was passiert, und was dann als n\u00e4chstes passiert und so weiter.<\/p>\n<p>Der tiefe Grund, warum Versprechen oft besser sind, ist, dass sie komponierbarer sind, was bedeutet, dass das Kombinieren mehrerer Versprechen &quot;einfach funktioniert&quot;, w\u00e4hrend das Kombinieren mehrerer R\u00fcckrufe oft nicht funktioniert.<\/p>\n<p>Wenn wir einen einzigen R\u00fcckruf gegen ein einziges Versprechen haben, gibt es zwar keinen signifikanten Unterschied. Wenn Sie eine Million R\u00fcckrufe gegen eine Million Versprechen haben, sieht vielversprechender Code in der Regel viel besser aus.<\/p>\n<p>Okay, wir sind der Callback-H\u00f6lle erfolgreich entkommen und haben unseren Code mit Versprechungen viel lesbarer gemacht. Aber was w\u00e4re, wenn ich Ihnen sagen w\u00fcrde, dass es eine M\u00f6glichkeit gibt, es sauberer und lesbarer zu machen?<\/p>\n<h3><span class=\"ez-toc-section\" id=\"aWait-for-it\"><\/span><strong>(a) Warten Sie<\/strong> daf\u00fcr<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Async-wait wird seit ECMA2017 in Javascript unterst\u00fctzt. Mit ihnen k\u00f6nnen Sie Code basierend auf Versprechungen schreiben, als w\u00e4re es synchroner Code, ohne jedoch den Hauptthread zu blockieren. Sie machen Ihren asynchronen Code weniger &quot;intelligent&quot; und besser lesbar.<\/p>\n<p>Um ehrlich zu sein, sind Asynkrasien nichts anderes als syntaktischer Zucker zus\u00e4tzlich zu Versprechungen, aber sie lassen asynchronen Code ein bisschen mehr wie synchronen Code aussehen und sich so verhalten, genau hier liegt ihre Macht.<\/p>\n<p>Wenn Sie das Schl\u00fcsselwort Async verwenden, bevor Sie eine Funktion definieren, k\u00f6nnen Sie die Option wait innerhalb der Funktion verwenden. Wenn Sie auf ein Versprechen warten, stoppt die Funktion auf eine Weise, die erst blockiert, wenn das Versprechen erf\u00fcllt ist. Wenn das Versprechen erf\u00fcllt ist, wird der Wert abgerufen. Wenn das Versprechen abgelehnt wird, wird der abgelehnte Wert freigegeben.<\/p>\n<p>Lassen Sie uns nun sehen, wie unsere Spiellogik aussieht, wenn wir sie neu schreiben <strong>Async-erwartet.<\/strong><\/p>\n<pre data-enlighter-language=\"php\" class=\"EnlighterJSRAW\">Funktion levelOne (Wert) {var Versprechen, newScore = Wert + 5; R\u00fcckgabeversprechen = neues Versprechen (Funktion (Aufl\u00f6sung) {Aufl\u00f6sung (newScore);}); } function levelTwo (value) {var versprechen, newScore = value + 10; R\u00fcckgabeversprechen = neues Versprechen (Funktion (Aufl\u00f6sung) {Aufl\u00f6sung (newScore);}); } function levelThree (value) {var versprechen, newScore = value + 30; R\u00fcckgabeversprechen = neues Versprechen (Funktion (Aufl\u00f6sung) {Aufl\u00f6sung (newScore);}); } \/\/ Das asynchrone Schl\u00fcsselwort teilt der Javascript-Engine mit, dass jede Funktion in dieser Funktion, die das Schl\u00fcsselwort await enth\u00e4lt, als asynchroner Code behandelt werden soll und erst ausgef\u00fchrt werden soll, nachdem diese Funktion aufgel\u00f6st wurde oder fehlschl\u00e4gt.\n<\/pre>\n<pre data-enlighter-language=\"php\" class=\"EnlighterJSRAW\">asynchrone Funktion startGame () {var currentScore = 5; console.log (&#039;Spiel gestartet! Aktuelle Punktzahl ist&#039; + currentScore); currentScore = warte auf levelOne (currentScore); console.log (&#039;Du hast Level Eins erreicht! Die neue Punktzahl ist&#039; + currentScore); currentScore = warte auf levelTwo (currentScore); console.log (&#039;Du hast Level Zwei erreicht! Die neue Punktzahl ist&#039; + currentScore); currentScore = warte auf levelThree (currentScore); console.log (Du hast Level Drei erreicht! Die neue Punktzahl ist &#039;+ currentScore); } Spiel beginnen ();\n<\/pre>\n<p>Sofort wird unser Code viel lesbarer, aber es gibt noch mehr zu tun <strong>Async-warten.<\/strong><\/p>\n<p>Die Fehlerbehandlung ist eine der wichtigsten Funktionen von Async-await, die auff\u00e4llt. Wir k\u00f6nnen endlich sowohl synchrone als auch asynchrone Fehler mit derselben Konstruktion mit try and catches behandeln, was mit Versprechungen ein Schmerz war, ohne try-catch-Bl\u00f6cke zu duplizieren.<\/p>\n<p>Die n\u00e4chstbeste Verbesserung in der Welt der guten alten Versprechen ist das Code-Debugging. Wenn wir Versprechen schreiben, die auf Pfeilfunktionen basieren, k\u00f6nnen wir innerhalb unserer Pfeilfunktionen keine Haltepunkte setzen, daher ist das Debuggen manchmal schwierig. Bei asynchronen Wartezeiten ist das Debuggen jedoch wie ein synchrones Code-Snippet<\/p>\n<\/p><\/div>","protected":false},"excerpt":{"rendered":"<p>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 grandes, funciones de flecha, plantillas literales, etc. Callbacks&#8230;<\/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\/de\/javascript\/funciones-asincronas\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\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\/de\/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\":\"de\"},{\"@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\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/rmarketingdigital.com\\\/javascript\\\/funciones-asincronas\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@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\":\"de\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/rmarketingdigital.com\\\/#\\\/schema\\\/person\\\/7c0d9782b2977b840b3740f00c69a73e\",\"name\":\"R Marketing Digital\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@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":"Dieser Artikel richtet sich an Personen, die mit der asynchronen Codierung in JavaScript noch nicht vertraut sind, damit wir die Dinge einfach halten k\u00f6nnen, indem wir W\u00f6rter vermeiden","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\/de\/javascript\/funciones-asincronas\/","og_locale":"de_DE","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\/de\/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":"de"},{"@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":"Dieser Artikel richtet sich an Personen, die mit der asynchronen Codierung in JavaScript noch nicht vertraut sind, damit wir die Dinge einfach halten k\u00f6nnen, indem wir W\u00f6rter vermeiden","inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/rmarketingdigital.com\/javascript\/funciones-asincronas\/"]}]},{"@type":"ImageObject","inLanguage":"de","@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 Digitales Marketing","description":"SEO Agentur | Werbung f\u00fcr soziale Netzwerke | 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":"de"},{"@type":"Person","@id":"https:\/\/rmarketingdigital.com\/#\/schema\/person\/7c0d9782b2977b840b3740f00c69a73e","name":"R Digitales Marketing","image":{"@type":"ImageObject","inLanguage":"de","@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\/de\/wp-json\/wp\/v2\/posts\/95578","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/rmarketingdigital.com\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/rmarketingdigital.com\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/rmarketingdigital.com\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/rmarketingdigital.com\/de\/wp-json\/wp\/v2\/comments?post=95578"}],"version-history":[{"count":0,"href":"https:\/\/rmarketingdigital.com\/de\/wp-json\/wp\/v2\/posts\/95578\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/rmarketingdigital.com\/de\/wp-json\/wp\/v2\/media\/95579"}],"wp:attachment":[{"href":"https:\/\/rmarketingdigital.com\/de\/wp-json\/wp\/v2\/media?parent=95578"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/rmarketingdigital.com\/de\/wp-json\/wp\/v2\/categories?post=95578"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/rmarketingdigital.com\/de\/wp-json\/wp\/v2\/tags?post=95578"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}