{"id":3044,"date":"2020-09-02T08:51:00","date_gmt":"2020-09-02T08:51:00","guid":{"rendered":"http:\/\/the-codest.localhost\/blog\/asynchronous-and-single-threaded-javascript-meet-the-event-loop\/"},"modified":"2026-04-24T11:34:04","modified_gmt":"2026-04-24T11:34:04","slug":"asynchrones-und-single-thread-javascript-trifft-auf-die-ereignisschleife","status":"publish","type":"post","link":"https:\/\/thecodest.co\/de\/blog\/asynchronous-and-single-threaded-javascript-meet-the-event-loop\/","title":{"rendered":"Asynchron und einf\u00e4dig JavaScript?"},"content":{"rendered":"<ul class=\"wp-block-list\">\n<li><strong>Laufzeit<\/strong><\/li>\n<\/ul>\n\n\n\n<p><a href=\"https:\/\/thecodest.co\/de\/blog\/hire-javascript-developer\/\">JavaScript<\/a> ist eine interpretierte Sprache, keine kompilierte. Das bedeutet, dass sie einen Interpreter ben\u00f6tigt, der die <a href=\"https:\/\/thecodest.co\/de\/blog\/hire-vue-js-developers\/\">JS<\/a> <a href=\"https:\/\/thecodest.co\/de\/dictionary\/what-is-code-refactoring\/\">Code<\/a> in einen Maschinencode. Es gibt verschiedene Arten von Interpretern (so genannte Engines). Die beliebtesten Browser-Engines sind V8 (Chrome), Quantum (Firefox) und WebKit (Safari). V8 wird \u00fcbrigens auch in einer beliebten Nicht-Browser-Laufzeitumgebung verwendet, <a href=\"https:\/\/thecodest.co\/de\/blog\/find-your-node-js-expert-for-hire-today\/\">Node.js<\/a>.<\/p>\n\n\n\n<p>Jede Engine enth\u00e4lt einen Speicher-Heap, einen Call-Stack, eine Ereignisschleife, eine Callback-Warteschlange und eine WebAPI mit HTTP-Anfragen, Timern, Ereignissen usw., die alle auf ihre eigene Weise implementiert sind, um eine schnellere und sicherere Interpretation des JS-Codes zu gew\u00e4hrleisten.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"\/app\/uploads\/2024\/05\/runtime-architecture.png\" alt=\"JavaScript Entwicklung\" title=\"JavaScript Entwicklung\"\/><\/figure>\n\n\n\n<p><em>Grundlegende JS-Laufzeitarchitektur. Autor: Alex Zlatkov<\/em><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Einzelnes Thema<\/strong><\/h2>\n\n\n\n<p>Eine Single-Thread-Sprache ist eine Sprache mit einem einzigen Aufrufstapel und einem einzigen Speicherheap. Das bedeutet, dass sie nur eine Sache zur gleichen Zeit ausf\u00fchrt.<\/p>\n\n\n\n<p>A&nbsp;<code>Stapel<\/code>&nbsp;ist ein kontinuierlicher Speicherbereich, der f\u00fcr jede ausgef\u00fchrte Funktion einen lokalen Kontext zuweist.<\/p>\n\n\n\n<p>A&nbsp;<code>Haufen<\/code>&nbsp;ist ein viel gr\u00f6\u00dferer Bereich, in dem alles dynamisch zugewiesen wird.<\/p>\n\n\n\n<p>A&nbsp;<code>Aufrufstapel<\/code>&nbsp;ist eine <a href=\"https:\/\/thecodest.co\/de\/blog\/app-data-collection-security-risks-value-and-types-explored\/\">Daten<\/a> Struktur, die im Wesentlichen festh\u00e4lt, wo wir uns im Programm befinden.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Stapel aufrufen<\/strong><\/h3>\n\n\n\n<p>Schreiben wir einen einfachen Code und verfolgen wir, was auf dem Aufrufstapel passiert.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"\/app\/uploads\/2024\/05\/stack.gif\" alt=\"JavaScript Software-Entwicklung\" title=\"JavaScript Software-Entwicklung\"\/><\/figure>\n\n\n\n<p>Wie Sie sehen k\u00f6nnen, werden die Funktionen dem Stapel hinzugef\u00fcgt, ausgef\u00fchrt und sp\u00e4ter gel\u00f6scht. Das ist der sogenannte LIFO-Weg - Last In, First Out. Jeder Eintrag im Aufrufstapel wird als&nbsp;<code>Stapelrahmen<\/code>.<\/p>\n\n\n\n<p>Die Kenntnis des Aufrufstapels ist n\u00fctzlich f\u00fcr das Lesen von Fehler-Stapelspuren. Im Allgemeinen steht der genaue Grund f\u00fcr den Fehler oben in der ersten Zeile, obwohl die Reihenfolge der Codeausf\u00fchrung von unten nach oben verl\u00e4uft.<\/p>\n\n\n\n<p>Manchmal k\u00f6nnen Sie mit einem beliebten Fehler umgehen, der durch\u00a0<code>Maximale Gr\u00f6\u00dfe des Aufrufstapels \u00fcberschritten<\/code>. Mit Hilfe der Rekursion ist dies leicht zu erreichen:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"javascript\" class=\"language-javascript\">function foo() {\n    foo()\n}\nfoo()<\/code><\/pre>\n\n\n\n<p>und unser Browser oder Terminal friert ein. Jeder Browser, auch die verschiedenen Versionen, hat eine andere Grenze f\u00fcr die Gr\u00f6\u00dfe des Aufrufstapels. In der \u00fcberwiegenden Mehrheit der F\u00e4lle sind sie ausreichend und das Problem sollte anderswo gesucht werden.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Blockierter Aufrufstapel<\/strong><\/h3>\n\n\n\n<p>Hier ist ein Beispiel f\u00fcr das Blockieren des JS-Threads. Lassen Sie uns versuchen, eine&nbsp;<code>foo<\/code>&nbsp;Datei und eine&nbsp;<code>bar<\/code>&nbsp;unter Verwendung der <a href=\"https:\/\/thecodest.co\/de\/dictionary\/what-is-node-js-used-for\/\">Knotenpunkt<\/a>.js synchrone Funktion&nbsp;<code>readFileSync<\/code>.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"\/app\/uploads\/2024\/05\/blocking.gif\" alt=\"JavaScript-Code\" title=\"JavaScript-Code\"\/><\/figure>\n\n\n\n<p>Dies ist ein GIF mit Schleife. Wie Sie sehen, wartet die JS-Engine, bis der erste Aufruf in&nbsp;<code>readFileSync<\/code>&nbsp;abgeschlossen ist. Dies wird jedoch nicht geschehen, weil es keine&nbsp;<code>foo<\/code>&nbsp;Datei, so dass die zweite Funktion nie aufgerufen wird.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Asynchrones Verhalten<\/strong><\/h2>\n\n\n\n<p>JS kann aber auch nicht-blockierend sein und sich wie ein Multi-Thread-System verhalten. Das hei\u00dft, es wartet nicht auf die Antwort eines <a href=\"https:\/\/thecodest.co\/de\/blog\/compare-staff-augmentation-firms-that-excel-in-api-team-staffing-for-financial-technology-projects\/\">API<\/a> Aufruf, E\/A-Ereignisse usw., und kann die Codeausf\u00fchrung fortsetzen. Dies ist dank der JS-Engines m\u00f6glich, die (unter der Haube) echte Multithreading-Sprachen wie C++ (Chrome) oder Rust (Firefox) verwenden. Sie bieten <a href=\"https:\/\/thecodest.co\/de\/blog\/why-us-companies-are-opting-for-polish-developers\/\">us<\/a> mit dem <a href=\"https:\/\/thecodest.co\/de\/blog\/find-your-ideal-stack-for-web-development\/\">Web<\/a> API unter den Browser-Hauben oder z. B. E\/A-API unter Node.js.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"\/app\/uploads\/2024\/05\/callback-queue.gif\" alt=\"JavaScript Programmiersprache\" title=\"JavaScript Programmiersprache\"\/><\/figure>\n\n\n\n<p>Im obigen GIF sehen wir, dass die erste Funktion auf den Aufrufstapel geschoben wird und&nbsp;<code>Hallo<\/code>&nbsp;wird sofort in der Konsole ausgef\u00fchrt.<\/p>\n\n\n\n<p>Dann rufen wir die&nbsp;<code>setTimeout<\/code>&nbsp;Funktion, die von der WebAPI des Browsers bereitgestellt wird. Sie geht an den Aufrufstapel und seinen asynchronen R\u00fcckruf&nbsp;<code>foo<\/code>&nbsp;Funktion geht an die Warteschlange der WebApi, wo sie auf den Aufruf wartet, der nach 3 Sekunden erfolgen soll.<\/p>\n\n\n\n<p>In der Zwischenzeit setzt das Programm den Code fort und wir sehen&nbsp;<code>Hallo. Ich bin nicht blockiert<\/code>&nbsp;in der Konsole.<\/p>\n\n\n\n<p>Nach dem Aufruf geht jede Funktion in der WebAPI-Warteschlange in die&nbsp;<code>R\u00fcckruf-Warteschlange<\/code>. Hier warten die Funktionen, bis der Aufrufstapel leer ist. Wenn dies geschieht, werden sie nacheinander dorthin verschoben.<\/p>\n\n\n\n<p>Also, wenn unser&nbsp;<code>setTimeout<\/code>&nbsp;Timer den Countdown beendet, wird unser&nbsp;<code>foo<\/code>&nbsp;Funktion geht zur Callback-Warteschlange, wartet, bis der Aufrufstapel verf\u00fcgbar wird, geht dorthin, wird ausgef\u00fchrt und wir sehen&nbsp;<code>Hallo vom asynchronen R\u00fcckruf<\/code>&nbsp;in der Konsole.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Ereignis-Schleife<\/strong><\/h3>\n\n\n\n<p>Die Frage ist, woher die Laufzeitumgebung wei\u00df, dass der Aufrufstapel leer ist, und wie das Ereignis in der Callback-Warteschlange aufgerufen wird. Das ist die Ereignisschleife. Sie ist ein Teil der JS-Engine. Dieser Prozess pr\u00fcft st\u00e4ndig, ob der Aufrufstapel leer ist, und wenn ja, \u00fcberwacht er, ob sich ein Ereignis in der Callback-Warteschlange befindet, das darauf wartet, aufgerufen zu werden.<\/p>\n\n\n\n<p>Das ist der ganze Zauber hinter den Kulissen!<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Abschlie\u00dfende Betrachtung der Theorie<\/strong><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Gleichzeitigkeit und Parallelit\u00e4t<\/strong><\/h3>\n\n\n\n<p><code>Gleichzeitigkeit<\/code>&nbsp;bedeutet, dass mehrere Aufgaben zur gleichen Zeit, aber nicht gleichzeitig ausgef\u00fchrt werden. Z.B. arbeiten zwei Aufgaben in sich \u00fcberschneidenden Zeitr\u00e4umen.<\/p>\n\n\n\n<p><code>Parallelit\u00e4t<\/code>&nbsp;bedeutet, dass zwei oder mehr Aufgaben gleichzeitig ausgef\u00fchrt werden, z. B. mehrere Berechnungen zur gleichen Zeit.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>F\u00e4den und Prozesse<\/strong><\/h3>\n\n\n\n<p><code>F\u00e4den<\/code>&nbsp;sind eine Folge von Codeausf\u00fchrungen, die unabh\u00e4ngig voneinander ausgef\u00fchrt werden k\u00f6nnen.<\/p>\n\n\n\n<p><code>Prozess<\/code>&nbsp;ist eine Instanz eines laufenden Programms. Ein Programm kann mehrere Prozesse haben.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Synchron und asynchron<\/strong><\/h3>\n\n\n\n<p>Unter&nbsp;<code>synchron<\/code>&nbsp;Bei der Programmierung werden die Aufgaben nacheinander ausgef\u00fchrt. Jede Aufgabe wartet, bis die vorherige Aufgabe abgeschlossen ist, und wird erst dann ausgef\u00fchrt.<\/p>\n\n\n\n<p>Unter&nbsp;<code>asynchrone<\/code>&nbsp;Programmierung k\u00f6nnen Sie nach der Ausf\u00fchrung einer Aufgabe zu einer anderen Aufgabe wechseln, ohne auf den Abschluss der vorherigen Aufgabe zu warten.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Synchron und asynchron in einer Single- und Multithreading-Umgebung<\/strong><\/h3>\n\n\n\n<p><code>Synchron mit einem einzigen Thread<\/code>: Die Aufgaben werden nacheinander ausgef\u00fchrt. Jede Aufgabe wartet darauf, dass die vorherige Aufgabe ausgef\u00fchrt wird.<\/p>\n\n\n\n<p><code>Synchron mit mehreren Threads<\/code>: Die Aufgaben werden in verschiedenen Threads ausgef\u00fchrt, warten aber auf andere Aufgaben, die in einem anderen Thread ausgef\u00fchrt werden.<\/p>\n\n\n\n<p><code>Asynchron mit einem einzigen Thread<\/code>: Aufgaben werden ausgef\u00fchrt, ohne auf die Beendigung einer anderen Aufgabe zu warten. Zu einem bestimmten Zeitpunkt kann nur eine einzige Aufgabe ausgef\u00fchrt werden.<\/p>\n\n\n\n<p><code>Asynchron mit mehreren Threads<\/code>: Aufgaben werden in verschiedenen Threads ausgef\u00fchrt, ohne auf die Fertigstellung anderer Aufgaben zu warten, und beenden ihre Ausf\u00fchrung unabh\u00e4ngig voneinander.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>JavaScript Klassifizierung<\/strong><\/h2>\n\n\n\n<p>Wenn wir uns ansehen, wie JS-Motoren unter der Haube arbeiten, k\u00f6nnen wir JS als eine asynchrone und interpretierte Single-Thread-Sprache klassifizieren. Das Wort \"interpretiert\" ist sehr wichtig, denn es bedeutet, dass die Sprache immer laufzeitabh\u00e4ngig und nie so schnell wie kompilierte Sprachen mit integriertem Multithreading sein wird.<\/p>\n\n\n\n<p>Es ist bemerkenswert, dass Node.js echtes Multithreading erreichen kann, vorausgesetzt, dass jeder Thread als separater Prozess gestartet wird. Daf\u00fcr gibt es Bibliotheken, aber Node.js hat eine eingebaute Funktion namens&nbsp;<a href=\"https:\/\/nodejs.org\/api\/worker_threads.html#worker_threads_worker_threads\">Arbeitsthemen<\/a>.<\/p>\n\n\n\n<p>Alle Ereignisschleifen-GIFs stammen aus dem&nbsp;<a href=\"https:\/\/github.com\/latentflip\/loupe\">Lupe<\/a>&nbsp;Anwendung von Philip Roberts, mit der Sie Ihre asynchronen Szenarien testen k\u00f6nnen.<\/p>\n\n\n\n<p><b>Lesen Sie mehr:<\/b><\/p>\n\n\n\n<p><a href=\"https:\/\/thecodest.co\/blog\/why-you-should-probably-use-typescript\">Warum sollten Sie (wahrscheinlich) Typescript verwenden?<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/thecodest.co\/blog\/quality-first-5-easy-steps-to-lint-your-code-with-github-workflows-in-javascript-project\/\">Qualit\u00e4t geht vor! 5 einfache Schritte zum Linting Ihres Codes mit GitHub-Workflows im JavaScript-Projekt<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/thecodest.co\/blog\/how-to-improve-vue-js-apps-some-practical-tips\/\">Wie kann man Vue.js-Anwendungen verbessern? Einige praktische Tipps<\/a><\/p>","protected":false},"excerpt":{"rendered":"<p>JavaScript ist eine Single-Thread-Sprache und gleichzeitig auch nicht-blockierend, asynchron und nebenl\u00e4ufig. Dieser Artikel wird Ihnen erkl\u00e4ren, wie das geschieht.<\/p>","protected":false},"author":2,"featured_media":3045,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[8],"tags":[],"class_list":["post-3044","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-software-development"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.3 (Yoast SEO v27.3) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Asynchronous and Single-threaded JavaScript? - The Codest<\/title>\n<meta name=\"description\" content=\"JavaScript is a single-threaded language and, at the same time, also non-blocking, asynchronous and concurrent. This article will explain to you how it happens.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/thecodest.co\/de\/blog\/asynchrones-und-single-thread-javascript-trifft-auf-die-ereignisschleife\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Asynchronous and Single-threaded JavaScript?\" \/>\n<meta property=\"og:description\" content=\"JavaScript is a single-threaded language and, at the same time, also non-blocking, asynchronous and concurrent. This article will explain to you how it happens.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/thecodest.co\/de\/blog\/asynchrones-und-single-thread-javascript-trifft-auf-die-ereignisschleife\/\" \/>\n<meta property=\"og:site_name\" content=\"The Codest\" \/>\n<meta property=\"article:published_time\" content=\"2020-09-02T08:51:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-04-24T11:34:04+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/thecodest.co\/app\/uploads\/2024\/05\/cover-image-16.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1920\" \/>\n\t<meta property=\"og:image:height\" content=\"1080\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"thecodest\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"thecodest\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/asynchronous-and-single-threaded-javascript-meet-the-event-loop\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/asynchronous-and-single-threaded-javascript-meet-the-event-loop\\\/\"},\"author\":{\"name\":\"thecodest\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/#\\\/schema\\\/person\\\/7e3fe41dfa4f4e41a7baad4c6e0d4f76\"},\"headline\":\"Asynchronous and Single-threaded JavaScript?\",\"datePublished\":\"2020-09-02T08:51:00+00:00\",\"dateModified\":\"2026-04-24T11:34:04+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/asynchronous-and-single-threaded-javascript-meet-the-event-loop\\\/\"},\"wordCount\":1058,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/asynchronous-and-single-threaded-javascript-meet-the-event-loop\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/thecodest.co\\\/app\\\/uploads\\\/2024\\\/05\\\/cover-image-16.jpg\",\"articleSection\":[\"Software Development\"],\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/thecodest.co\\\/blog\\\/asynchronous-and-single-threaded-javascript-meet-the-event-loop\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/asynchronous-and-single-threaded-javascript-meet-the-event-loop\\\/\",\"url\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/asynchronous-and-single-threaded-javascript-meet-the-event-loop\\\/\",\"name\":\"Asynchronous and Single-threaded JavaScript? - The Codest\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/asynchronous-and-single-threaded-javascript-meet-the-event-loop\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/asynchronous-and-single-threaded-javascript-meet-the-event-loop\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/thecodest.co\\\/app\\\/uploads\\\/2024\\\/05\\\/cover-image-16.jpg\",\"datePublished\":\"2020-09-02T08:51:00+00:00\",\"dateModified\":\"2026-04-24T11:34:04+00:00\",\"description\":\"JavaScript is a single-threaded language and, at the same time, also non-blocking, asynchronous and concurrent. This article will explain to you how it happens.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/asynchronous-and-single-threaded-javascript-meet-the-event-loop\\\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/thecodest.co\\\/blog\\\/asynchronous-and-single-threaded-javascript-meet-the-event-loop\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/asynchronous-and-single-threaded-javascript-meet-the-event-loop\\\/#primaryimage\",\"url\":\"https:\\\/\\\/thecodest.co\\\/app\\\/uploads\\\/2024\\\/05\\\/cover-image-16.jpg\",\"contentUrl\":\"https:\\\/\\\/thecodest.co\\\/app\\\/uploads\\\/2024\\\/05\\\/cover-image-16.jpg\",\"width\":1920,\"height\":1080},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/asynchronous-and-single-threaded-javascript-meet-the-event-loop\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/thecodest.co\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Asynchronous and Single-threaded JavaScript?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/#website\",\"url\":\"https:\\\/\\\/thecodest.co\\\/\",\"name\":\"The Codest\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/thecodest.co\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/#organization\",\"name\":\"The Codest\",\"url\":\"https:\\\/\\\/thecodest.co\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/thecodest.co\\\/app\\\/uploads\\\/2024\\\/03\\\/thecodest-logo.svg\",\"contentUrl\":\"https:\\\/\\\/thecodest.co\\\/app\\\/uploads\\\/2024\\\/03\\\/thecodest-logo.svg\",\"width\":144,\"height\":36,\"caption\":\"The Codest\"},\"image\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/pl.linkedin.com\\\/company\\\/codest\",\"https:\\\/\\\/clutch.co\\\/profile\\\/codest\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/#\\\/schema\\\/person\\\/7e3fe41dfa4f4e41a7baad4c6e0d4f76\",\"name\":\"thecodest\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5dbfe6a1e8c86e432e8812759e34e6fe82ebac75119ae3237a6c1311fa19caf4?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5dbfe6a1e8c86e432e8812759e34e6fe82ebac75119ae3237a6c1311fa19caf4?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5dbfe6a1e8c86e432e8812759e34e6fe82ebac75119ae3237a6c1311fa19caf4?s=96&d=mm&r=g\",\"caption\":\"thecodest\"},\"url\":\"https:\\\/\\\/thecodest.co\\\/de\\\/author\\\/thecodest\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Asynchroner und einf\u00e4diger JavaScript? - Der Codest","description":"JavaScript ist eine Single-Thread-Sprache und gleichzeitig auch nicht-blockierend, asynchron und nebenl\u00e4ufig. Dieser Artikel wird Ihnen erkl\u00e4ren, wie das geschieht.","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:\/\/thecodest.co\/de\/blog\/asynchrones-und-single-thread-javascript-trifft-auf-die-ereignisschleife\/","og_locale":"de_DE","og_type":"article","og_title":"Asynchronous and Single-threaded JavaScript?","og_description":"JavaScript is a single-threaded language and, at the same time, also non-blocking, asynchronous and concurrent. This article will explain to you how it happens.","og_url":"https:\/\/thecodest.co\/de\/blog\/asynchrones-und-single-thread-javascript-trifft-auf-die-ereignisschleife\/","og_site_name":"The Codest","article_published_time":"2020-09-02T08:51:00+00:00","article_modified_time":"2026-04-24T11:34:04+00:00","og_image":[{"width":1920,"height":1080,"url":"https:\/\/thecodest.co\/app\/uploads\/2024\/05\/cover-image-16.jpg","type":"image\/jpeg"}],"author":"thecodest","twitter_card":"summary_large_image","twitter_misc":{"Written by":"thecodest","Est. reading time":"6\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/thecodest.co\/blog\/asynchronous-and-single-threaded-javascript-meet-the-event-loop\/#article","isPartOf":{"@id":"https:\/\/thecodest.co\/blog\/asynchronous-and-single-threaded-javascript-meet-the-event-loop\/"},"author":{"name":"thecodest","@id":"https:\/\/thecodest.co\/#\/schema\/person\/7e3fe41dfa4f4e41a7baad4c6e0d4f76"},"headline":"Asynchronous and Single-threaded JavaScript?","datePublished":"2020-09-02T08:51:00+00:00","dateModified":"2026-04-24T11:34:04+00:00","mainEntityOfPage":{"@id":"https:\/\/thecodest.co\/blog\/asynchronous-and-single-threaded-javascript-meet-the-event-loop\/"},"wordCount":1058,"commentCount":0,"publisher":{"@id":"https:\/\/thecodest.co\/#organization"},"image":{"@id":"https:\/\/thecodest.co\/blog\/asynchronous-and-single-threaded-javascript-meet-the-event-loop\/#primaryimage"},"thumbnailUrl":"https:\/\/thecodest.co\/app\/uploads\/2024\/05\/cover-image-16.jpg","articleSection":["Software Development"],"inLanguage":"de","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/thecodest.co\/blog\/asynchronous-and-single-threaded-javascript-meet-the-event-loop\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/thecodest.co\/blog\/asynchronous-and-single-threaded-javascript-meet-the-event-loop\/","url":"https:\/\/thecodest.co\/blog\/asynchronous-and-single-threaded-javascript-meet-the-event-loop\/","name":"Asynchroner und einf\u00e4diger JavaScript? - Der Codest","isPartOf":{"@id":"https:\/\/thecodest.co\/#website"},"primaryImageOfPage":{"@id":"https:\/\/thecodest.co\/blog\/asynchronous-and-single-threaded-javascript-meet-the-event-loop\/#primaryimage"},"image":{"@id":"https:\/\/thecodest.co\/blog\/asynchronous-and-single-threaded-javascript-meet-the-event-loop\/#primaryimage"},"thumbnailUrl":"https:\/\/thecodest.co\/app\/uploads\/2024\/05\/cover-image-16.jpg","datePublished":"2020-09-02T08:51:00+00:00","dateModified":"2026-04-24T11:34:04+00:00","description":"JavaScript ist eine Single-Thread-Sprache und gleichzeitig auch nicht-blockierend, asynchron und nebenl\u00e4ufig. Dieser Artikel wird Ihnen erkl\u00e4ren, wie das geschieht.","breadcrumb":{"@id":"https:\/\/thecodest.co\/blog\/asynchronous-and-single-threaded-javascript-meet-the-event-loop\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/thecodest.co\/blog\/asynchronous-and-single-threaded-javascript-meet-the-event-loop\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/thecodest.co\/blog\/asynchronous-and-single-threaded-javascript-meet-the-event-loop\/#primaryimage","url":"https:\/\/thecodest.co\/app\/uploads\/2024\/05\/cover-image-16.jpg","contentUrl":"https:\/\/thecodest.co\/app\/uploads\/2024\/05\/cover-image-16.jpg","width":1920,"height":1080},{"@type":"BreadcrumbList","@id":"https:\/\/thecodest.co\/blog\/asynchronous-and-single-threaded-javascript-meet-the-event-loop\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/thecodest.co\/"},{"@type":"ListItem","position":2,"name":"Asynchronous and Single-threaded JavaScript?"}]},{"@type":"WebSite","@id":"https:\/\/thecodest.co\/#website","url":"https:\/\/thecodest.co\/","name":"Der Codest","description":"","publisher":{"@id":"https:\/\/thecodest.co\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/thecodest.co\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de"},{"@type":"Organization","@id":"https:\/\/thecodest.co\/#organization","name":"Der Codest","url":"https:\/\/thecodest.co\/","logo":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/thecodest.co\/#\/schema\/logo\/image\/","url":"https:\/\/thecodest.co\/app\/uploads\/2024\/03\/thecodest-logo.svg","contentUrl":"https:\/\/thecodest.co\/app\/uploads\/2024\/03\/thecodest-logo.svg","width":144,"height":36,"caption":"The Codest"},"image":{"@id":"https:\/\/thecodest.co\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/pl.linkedin.com\/company\/codest","https:\/\/clutch.co\/profile\/codest"]},{"@type":"Person","@id":"https:\/\/thecodest.co\/#\/schema\/person\/7e3fe41dfa4f4e41a7baad4c6e0d4f76","name":"thecodest","image":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/secure.gravatar.com\/avatar\/5dbfe6a1e8c86e432e8812759e34e6fe82ebac75119ae3237a6c1311fa19caf4?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/5dbfe6a1e8c86e432e8812759e34e6fe82ebac75119ae3237a6c1311fa19caf4?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/5dbfe6a1e8c86e432e8812759e34e6fe82ebac75119ae3237a6c1311fa19caf4?s=96&d=mm&r=g","caption":"thecodest"},"url":"https:\/\/thecodest.co\/de\/author\/thecodest\/"}]}},"_links":{"self":[{"href":"https:\/\/thecodest.co\/de\/wp-json\/wp\/v2\/posts\/3044","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/thecodest.co\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/thecodest.co\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/thecodest.co\/de\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/thecodest.co\/de\/wp-json\/wp\/v2\/comments?post=3044"}],"version-history":[{"count":6,"href":"https:\/\/thecodest.co\/de\/wp-json\/wp\/v2\/posts\/3044\/revisions"}],"predecessor-version":[{"id":7721,"href":"https:\/\/thecodest.co\/de\/wp-json\/wp\/v2\/posts\/3044\/revisions\/7721"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/thecodest.co\/de\/wp-json\/wp\/v2\/media\/3045"}],"wp:attachment":[{"href":"https:\/\/thecodest.co\/de\/wp-json\/wp\/v2\/media?parent=3044"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/thecodest.co\/de\/wp-json\/wp\/v2\/categories?post=3044"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/thecodest.co\/de\/wp-json\/wp\/v2\/tags?post=3044"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}