{"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":"asinhrona-un-viena-pavediena-javascript-sastopas-ar-notikumu-cilpu","status":"publish","type":"post","link":"https:\/\/thecodest.co\/lv\/blog\/asynchronous-and-single-threaded-javascript-meet-the-event-loop\/","title":{"rendered":"Asinhronais un vienpavedienu JavaScript?"},"content":{"rendered":"<ul class=\"wp-block-list\">\n<li><strong>Runtime<\/strong><\/li>\n<\/ul>\n\n\n\n<p><a href=\"https:\/\/thecodest.co\/lv\/blog\/hire-javascript-developer\/\">JavaScript<\/a> ir interpret\u0113ta, nevis kompil\u0113ta valoda. Tas noz\u012bm\u0113, ka tai ir nepiecie\u0161ams tulks, kas konvert\u0113 <a href=\"https:\/\/thecodest.co\/lv\/blog\/hire-vue-js-developers\/\">JS<\/a> <a href=\"https:\/\/thecodest.co\/lv\/dictionary\/what-is-code-refactoring\/\">kods<\/a> ma\u0161\u012bnkod\u0101. Ir vair\u0101ku veidu tulki (t. s. dzin\u0113ji). Popul\u0101r\u0101kie p\u0101rl\u016bkprogrammu dzin\u0113ji ir V8 (Chrome), Quantum (Firefox) un WebKit (Safari). Starp citu, V8 tiek izmantots ar\u012b popul\u0101raj\u0101 pal\u012bgprogramm\u0101, kas nav p\u0101rl\u016bkprogramma, <a href=\"https:\/\/thecodest.co\/lv\/blog\/find-your-node-js-expert-for-hire-today\/\">Node.js<\/a>.<\/p>\n\n\n\n<p>Katr\u0101 dzin\u0113j\u0101 ir atmi\u0146as kaudze, izsaukumu kaudze, notikumu cilpa, atsaukumu rinda un WebAPI ar HTTP piepras\u012bjumiem, taimeriem, notikumiem u. c., kas visi ir ieviesti sav\u0101 veid\u0101, lai \u0101tr\u0101k un dro\u0161\u0101k interpret\u0113tu JS kodu.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"\/app\/uploads\/2024\/05\/runtime-architecture.png\" alt=\"JavaScript izstr\u0101de\" title=\"JavaScript izstr\u0101de\"\/><\/figure>\n\n\n\n<p><em>JS izpildes laika arhitekt\u016bras pamati. Autors: Autors: Alex Zlatkov<\/em><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Viena v\u012btne<\/strong><\/h2>\n\n\n\n<p>Viena pavediena valoda ir valoda ar vienu izsaukumu kaudzi un vienu atmi\u0146as kaudzi. Tas noz\u012bm\u0113, ka taj\u0101 vienlaikus tiek izpild\u012bta tikai viena darb\u012bba.<\/p>\n\n\n\n<p>A&nbsp;<code>kaudze<\/code>&nbsp;ir nep\u0101rtraukts atmi\u0146as apgabals, kur\u0101 katrai izpild\u012btajai funkcijai tiek pie\u0161\u0137irts viet\u0113jais konteksts.<\/p>\n\n\n\n<p>A&nbsp;<code>kaudze<\/code>&nbsp;ir daudz liel\u0101ks re\u0123ions, kur\u0101 tiek glab\u0101ts viss dinamiski pie\u0161\u0137irtais.<\/p>\n\n\n\n<p>A&nbsp;<code>izsaukumu kaudze<\/code>&nbsp;ir <a href=\"https:\/\/thecodest.co\/lv\/blog\/app-data-collection-security-risks-value-and-types-explored\/\">dati<\/a> strukt\u016bra, kur\u0101 b\u016bt\u012bb\u0101 ir ierakst\u012bts, kur m\u0113s atrodamies programm\u0101.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Zvanu kaudze<\/strong><\/h3>\n\n\n\n<p>Uzrakst\u012bsim vienk\u0101r\u0161u kodu un nov\u0113rosim, kas notiek izsaukumu kaudz\u0113.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"\/app\/uploads\/2024\/05\/stack.gif\" alt=\"JavaScript programmat\u016bras izstr\u0101de\" title=\"JavaScript programmat\u016bras izstr\u0101de\"\/><\/figure>\n\n\n\n<p>K\u0101 redzat, funkcijas tiek pievienotas kaudz\u0113, izpild\u012btas un v\u0113l\u0101k dz\u0113stas. Tas ir t\u0101 sauktais LIFO veids - P\u0113d\u0113jais iek\u0161\u0101, pirmais \u0101r\u0101. Katru izsaukumu kaudzes ierakstu sauc par&nbsp;<code>kaudzes r\u0101mis<\/code>.<\/p>\n\n\n\n<p>Zin\u0101\u0161anas par izsaukumu kaudz\u012bti ir noder\u012bgas, lai las\u012btu k\u013c\u016bdu kaudz\u012btes izsekojumus. Parasti prec\u012bzs k\u013c\u016bdas iemesls ir pirm\u0101s rindas aug\u0161pus\u0113, lai gan koda izpildes sec\u012bba ir no apak\u0161as uz aug\u0161u.<\/p>\n\n\n\n<p>Da\u017ereiz var tikt gal\u0101 ar popul\u0101ru k\u013c\u016bdu, par kuru pazi\u0146o\u00a0<code>P\u0101rsniegts maksim\u0101lais izsaukumu kaudzes lielums<\/code>. To var viegli ieg\u016bt, izmantojot rekursiju:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"javascript\" class=\"language-javascript\">funkcija foo() {\n    foo()\n}\nfoo()<\/code><\/pre>\n\n\n\n<p>un m\u016bsu p\u0101rl\u016bkprogramma vai termin\u0101ls sastingst. Katrai p\u0101rl\u016bkprogrammai, pat to da\u017e\u0101daj\u0101m versij\u0101m, ir at\u0161\u0137ir\u012bgs izsaukumu kaudzes lieluma ierobe\u017eojums. Liel\u0101kaj\u0101 da\u013c\u0101 gad\u012bjumu tie ir pietiekami, un probl\u0113ma j\u0101mekl\u0113 citur.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Blo\u0137\u0113ts izsaukumu kaudze<\/strong><\/h3>\n\n\n\n<p>\u0160eit ir JS pavediena blo\u0137\u0113\u0161anas piem\u0113rs. M\u0113\u0123in\u0101sim nolas\u012bt&nbsp;<code>foo<\/code>&nbsp;failu un&nbsp;<code>b\u0101rs<\/code>&nbsp;izmantojot <a href=\"https:\/\/thecodest.co\/lv\/dictionary\/what-is-node-js-used-for\/\">Mezgls<\/a>.js sinhron\u0101 funkcija&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 kods\" title=\"JavaScript kods\"\/><\/figure>\n\n\n\n<p>\u0160is ir cilpveida GIF. K\u0101 redzat, JS dzin\u0113js gaida l\u012bdz pirmajam izsaukumam no&nbsp;<code>readFileSync<\/code>&nbsp;ir pabeigta. Bet tas nenotiks, jo nav&nbsp;<code>foo<\/code>&nbsp;failu, t\u0101p\u0113c otr\u0101 funkcija nekad netiks izsaukta.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Asinhron\u0101 uzved\u012bba<\/strong><\/h2>\n\n\n\n<p>Tom\u0113r JS var ar\u012b neblo\u0137\u0113t un darboties t\u0101, it k\u0101 tas b\u016btu daudzpavedienu lietojums. Tas noz\u012bm\u0113, ka tas negaida atbildi no <a href=\"https:\/\/thecodest.co\/lv\/blog\/compare-staff-augmentation-firms-that-excel-in-api-team-staffing-for-financial-technology-projects\/\">API<\/a> izsaukumiem, I\/O notikumiem u.c. un var turpin\u0101t koda izpildi. Tas ir iesp\u0113jams, pateicoties JS dzin\u0113jiem, kas izmanto (zem p\u0101rsega) re\u0101las daudzk\u0101rtu valodas, piem\u0113ram, C++ (Chrome) vai Rust (Firefox). T\u0101s nodro\u0161ina <a href=\"https:\/\/thecodest.co\/lv\/blog\/why-us-companies-are-opting-for-polish-developers\/\">mums<\/a> ar <a href=\"https:\/\/thecodest.co\/lv\/blog\/find-your-ideal-stack-for-web-development\/\">T\u012bmek\u013ca vietne<\/a> API zem p\u0101rl\u016bkprogrammas p\u0101rsegiem vai ex. I\/O API zem 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 programm\u0113\u0161anas valoda\" title=\"JavaScript programm\u0113\u0161anas valoda\"\/><\/figure>\n\n\n\n<p>Iepriek\u0161 redzamaj\u0101 GIF att\u0113l\u0101 redzams, ka pirm\u0101 funkcija tiek ievietota izsaukumu kaudz\u0113 un&nbsp;<code>Sveiki<\/code>&nbsp;nekav\u0113joties tiek izpild\u012bts konsoles log\u0101.<\/p>\n\n\n\n<p>P\u0113c tam m\u0113s izsaucam&nbsp;<code>setTimeout<\/code>&nbsp;funkcija, ko nodro\u0161ina p\u0101rl\u016bkprogrammas WebAPI. T\u0101 non\u0101k izsaukumu kaudz\u0113 un t\u0101s asinhronaj\u0101 atpaka\u013csaukum\u0101&nbsp;<code>foo<\/code>&nbsp;funkcija non\u0101k WebApi rind\u0101, kur t\u0101 gaida izsaukumu, kas tiek iestat\u012bts p\u0113c 3 sekund\u0113m.<\/p>\n\n\n\n<p>Tikm\u0113r programma turpina kodu, un m\u0113s redzam.&nbsp;<code>Sveiki. Es neesmu blo\u0137\u0113ts<\/code>&nbsp;konsol\u0113.<\/p>\n\n\n\n<p>P\u0113c izsauk\u0161anas katra WebAPI rind\u0101 eso\u0161\u0101 funkcija tiek nos\u016bt\u012bta uz&nbsp;<code>Atgriezenisko zvanu rinda<\/code>. T\u0101 ir vieta, kur funkcijas gaida, l\u012bdz izsaukumu kaudze ir tuk\u0161a. Kad tas notiek, t\u0101s tur tiek p\u0101rvietotas viena p\u0113c otras.<\/p>\n\n\n\n<p>T\u0101tad, kad m\u016bsu&nbsp;<code>setTimeout<\/code>&nbsp;taimeris pabeidz atpaka\u013cskait\u012b\u0161anu, m\u016bsu&nbsp;<code>foo<\/code>&nbsp;funkcija dodas uz atpaka\u013csaukumu rindu, gaida, kam\u0113r izsaukumu kaudze k\u013c\u016bst pieejama, dodas uz to, tiek izpild\u012bta un m\u0113s redzam.&nbsp;<code>Sveiki no asinhron\u0101 atgriezenisk\u0101 izsaukuma<\/code>&nbsp;konsol\u0113.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Notikumu cilpa<\/strong><\/h3>\n\n\n\n<p>Jaut\u0101jums ir par to, k\u0101 izpildmeh\u0101nisms uzzina, ka izsaukumu kaudze ir tuk\u0161a, un k\u0101 tiek izsaukts notikums izsaukumu atgriezenisk\u0101s saites rind\u0101? Iepaz\u012bstieties ar notikumu cilpu. T\u0101 ir JS dzin\u0113ja da\u013ca. \u0160is process nep\u0101rtraukti p\u0101rbauda, vai izsaukumu kaudze ir tuk\u0161a, un, ja t\u0101 ir, uzrauga, vai izsaukumu atgriezenisk\u0101s saites rind\u0101 ir notikums, kas gaida, lai to izsauktu.<\/p>\n\n\n\n<p>T\u0101 ir visa burv\u012bba aizkulis\u0113s!<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Teorijas kopsavilkums<\/strong><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Vienlaic\u012bgums un paral\u0113lisms<\/strong><\/h3>\n\n\n\n<p><code>Vienlaic\u012bgums<\/code>&nbsp;tas noz\u012bm\u0113, ka vienlaic\u012bgi tiek veikti vair\u0101ki uzdevumi, bet ne vienlaic\u012bgi. Piem\u0113ram, divi uzdevumi tiek izpild\u012bti laika periodos, kas p\u0101rkl\u0101jas.<\/p>\n\n\n\n<p><code>Paral\u0113lisms<\/code>&nbsp;ir divu vai vair\u0101ku uzdevumu veik\u0161ana vienlaic\u012bgi, piem\u0113ram, vair\u0101ku apr\u0113\u0137inu veik\u0161ana vienlaic\u012bgi.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Diegi un procesi<\/strong><\/h3>\n\n\n\n<p><code>Diegi<\/code>&nbsp;ir koda izpildes sec\u012bba, ko var izpild\u012bt neatkar\u012bgi vienu no otra.<\/p>\n\n\n\n<p><code>Process<\/code>&nbsp;ir darbojo\u0161\u0101s programmas gad\u012bjums. Programmai var b\u016bt vair\u0101ki procesi.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Sinhronais un asinhronais<\/strong><\/h3>\n\n\n\n<p>In&nbsp;<code>sinhronais<\/code>&nbsp;programm\u0113\u0161ana, uzdevumi tiek izpild\u012bti viens p\u0113c otra. Katrs uzdevums gaida, kam\u0113r tiek pabeigts iepriek\u0161\u0113jais uzdevums, un tikai tad tiek izpild\u012bts.<\/p>\n\n\n\n<p>In&nbsp;<code>asinhronais<\/code>&nbsp;programm\u0113\u0161ana, kad ir izpild\u012bts viens uzdevums, varat p\u0101rsl\u0113gties uz citu uzdevumu, negaidot, kam\u0113r tiks pabeigts iepriek\u0161\u0113jais.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Sinhron\u0101 un asinhron\u0101 darb\u012bba vienpavediena un daudzpavedienu vid\u0113<\/strong><\/h3>\n\n\n\n<p><code>Sinhronais ar vienu pavedienu<\/code>: Uzdevumi tiek izpild\u012bti viens p\u0113c otra. Katrs uzdevums gaida, kam\u0113r tiks izpild\u012bts iepriek\u0161\u0113jais uzdevums.<\/p>\n\n\n\n<p><code>Sinhronais ar vair\u0101kiem pavedieniem<\/code>: Uzdevumi tiek izpild\u012bti da\u017e\u0101dos pavedienos, bet gaida jebkuru citu uzdevumu izpildi jebkur\u0101 cit\u0101 pavedien\u0101.<\/p>\n\n\n\n<p><code>Asinhron\u0101 re\u017e\u012bm\u0101 ar vienu pavedienu<\/code>: Uzdevumi tiek s\u0101kti izpild\u012bt, negaidot, kam\u0113r tiks pabeigts cits uzdevums. Vien\u0101 br\u012bd\u012b var izpild\u012bt tikai vienu uzdevumu.<\/p>\n\n\n\n<p><code>Asinhronais ar vair\u0101kiem pavedieniem<\/code>: Uzdevumi tiek izpild\u012bti da\u017e\u0101dos pavedienos, negaidot citu uzdevumu pabeig\u0161anu un pabeidzot to izpildi neatkar\u012bgi.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>JavaScript klasifik\u0101cija<\/strong><\/h2>\n\n\n\n<p>Ja apl\u016bkojam, k\u0101 JS dzin\u0113ji darbojas zem p\u0101rsega, JS varam klasific\u0113t k\u0101 asinhronu un viena pavediena interpret\u0113tu valodu. V\u0101rds \u201cinterpret\u0113ta\u201d ir \u013coti svar\u012bgs, jo tas noz\u012bm\u0113, ka valoda vienm\u0113r b\u016bs atkar\u012bga no izpildes laika un nekad neb\u016bs tik \u0101tra k\u0101 kompil\u0113t\u0101s valodas ar ieb\u016bv\u0113tu daudzk\u0101rtu lietojumu.<\/p>\n\n\n\n<p>J\u0101atz\u012bm\u0113, ka Node.js var pan\u0101kt re\u0101lu daudzpavedienu darb\u012bbu, ja katrs pavediens tiek palaists k\u0101 atsevi\u0161\u0137s process. \u0160im nol\u016bkam ir bibliot\u0113kas, bet Node.js ir ieb\u016bv\u0113ta funkcija, ko sauc par&nbsp;<a href=\"https:\/\/nodejs.org\/api\/worker_threads.html#worker_threads_worker_threads\">Str\u0101dnieku pavedieni<\/a>.<\/p>\n\n\n\n<p>Visi notikumu cilpas GIF faili n\u0101k no&nbsp;<a href=\"https:\/\/github.com\/latentflip\/loupe\">Lupa<\/a>&nbsp;Filipa Robertsa izveidot\u0101 lietojumprogramma, kur\u0101 varat p\u0101rbaud\u012bt savus asinhronos scen\u0101rijus.<\/p>\n\n\n\n<p><b>Las\u012bt vair\u0101k:<\/b><\/p>\n\n\n\n<p><a href=\"https:\/\/thecodest.co\/blog\/why-you-should-probably-use-typescript\">K\u0101p\u0113c jums (iesp\u0113jams) vajadz\u0113tu izmantot Typescript?<\/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\/\">Kvalit\u0101te ir pirmaj\u0101 viet\u0101! 5 vienk\u0101r\u0161i so\u013ci, lai JavaScript projekt\u0101 uzlabotu kodu ar GitHub darbpl\u016bsm\u0101m<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/thecodest.co\/blog\/how-to-improve-vue-js-apps-some-practical-tips\/\">K\u0101 uzlabot Vue.js lietotnes? Da\u017ei praktiski padomi<\/a><\/p>","protected":false},"excerpt":{"rendered":"<p>JavaScript ir vienpavedienu valoda, kas vienlaikus ir ar\u012b neblo\u0137\u0113jo\u0161a, asinhrona un vienlaic\u012bga. \u0160aj\u0101 rakst\u0101 tiks izskaidrots, k\u0101 tas notiek.<\/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=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/thecodest.co\/lv\/emuars\/asinhrona-un-viena-pavediena-javascript-sastopas-ar-notikumu-cilpu\/\" \/>\n<meta property=\"og:locale\" content=\"lv_LV\" \/>\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\/lv\/emuars\/asinhrona-un-viena-pavediena-javascript-sastopas-ar-notikumu-cilpu\/\" \/>\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 min\u016btes\" \/>\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\":\"lv-LV\",\"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\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/asynchronous-and-single-threaded-javascript-meet-the-event-loop\\\/#breadcrumb\"},\"inLanguage\":\"lv-LV\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/thecodest.co\\\/blog\\\/asynchronous-and-single-threaded-javascript-meet-the-event-loop\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"lv-LV\",\"@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\":\"lv-LV\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/#organization\",\"name\":\"The Codest\",\"url\":\"https:\\\/\\\/thecodest.co\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"lv-LV\",\"@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\":\"lv-LV\",\"@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\\\/lv\\\/author\\\/thecodest\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Asinhronais un vienpavedienu JavaScript? - The Codest","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\/lv\/emuars\/asinhrona-un-viena-pavediena-javascript-sastopas-ar-notikumu-cilpu\/","og_locale":"lv_LV","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\/lv\/emuars\/asinhrona-un-viena-pavediena-javascript-sastopas-ar-notikumu-cilpu\/","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 min\u016btes"},"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":"lv-LV","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":"Asinhronais un vienpavedienu 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","breadcrumb":{"@id":"https:\/\/thecodest.co\/blog\/asynchronous-and-single-threaded-javascript-meet-the-event-loop\/#breadcrumb"},"inLanguage":"lv-LV","potentialAction":[{"@type":"ReadAction","target":["https:\/\/thecodest.co\/blog\/asynchronous-and-single-threaded-javascript-meet-the-event-loop\/"]}]},{"@type":"ImageObject","inLanguage":"lv-LV","@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":"lv-LV"},{"@type":"Organization","@id":"https:\/\/thecodest.co\/#organization","name":"The Codest","url":"https:\/\/thecodest.co\/","logo":{"@type":"ImageObject","inLanguage":"lv-LV","@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":"lv-LV","@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\/lv\/author\/thecodest\/"}]}},"_links":{"self":[{"href":"https:\/\/thecodest.co\/lv\/wp-json\/wp\/v2\/posts\/3044","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/thecodest.co\/lv\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/thecodest.co\/lv\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/thecodest.co\/lv\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/thecodest.co\/lv\/wp-json\/wp\/v2\/comments?post=3044"}],"version-history":[{"count":6,"href":"https:\/\/thecodest.co\/lv\/wp-json\/wp\/v2\/posts\/3044\/revisions"}],"predecessor-version":[{"id":7721,"href":"https:\/\/thecodest.co\/lv\/wp-json\/wp\/v2\/posts\/3044\/revisions\/7721"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/thecodest.co\/lv\/wp-json\/wp\/v2\/media\/3045"}],"wp:attachment":[{"href":"https:\/\/thecodest.co\/lv\/wp-json\/wp\/v2\/media?parent=3044"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/thecodest.co\/lv\/wp-json\/wp\/v2\/categories?post=3044"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/thecodest.co\/lv\/wp-json\/wp\/v2\/tags?post=3044"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}