{"id":22725,"date":"2023-07-20T05:00:00","date_gmt":"2023-07-20T03:00:00","guid":{"rendered":"https:\/\/sii.pl\/blog\/?p=22725"},"modified":"2026-05-07T14:48:07","modified_gmt":"2026-05-07T12:48:07","slug":"event-loop-czyli-w-jakiej-kolejnosci-przetwarzany-jest-kod-przez-javascript","status":"publish","type":"post","link":"https:\/\/sii.pl\/blog\/event-loop-czyli-w-jakiej-kolejnosci-przetwarzany-jest-kod-przez-javascript\/","title":{"rendered":"Event Loop, czyli w jakiej kolejno\u015bci przetwarzany jest kod przez JavaScript"},"content":{"rendered":"\n<p>JavaScript jest j\u0119zykiem do\u015b\u0107 mocno polaryzuj\u0105cym \u015brodowisko deweloperskie. Powiedzie\u0107, \u017ce pewne mechanizmy w nim zawarte s\u0105 specyficzne, to jakby nie powiedzie\u0107 nic.<\/p>\n\n\n\n<p>I tak te\u017c jest ze sposobem, w jaki przetwarza kod. W tym przypadku mowa o oryginalnym podej\u015bciu do \u0142\u0105czenia \u015bwiata synchronicznego z asynchronicznym. Ale nie dajmy si\u0119 zwie\u015b\u0107: JavaScript jest j\u0119zykiem stricte jednow\u0105tkowym, a <strong>z\u0142udzenie wielow\u0105tkowo\u015bci uzyskujemy<\/strong> <strong>dzi\u0119ki<\/strong> bohaterowi dzisiejszego artyku\u0142u, czyli <strong>mechanizmowi Event Loop<\/strong>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Przegl\u0105darka kontra JavaScript<\/strong><\/h2>\n\n\n\n<p>Wsp\u00f3\u0142czesne strony internetowe s\u0105 do\u015b\u0107 z\u0142o\u017cone, przez co, aby zachowa\u0107 p\u0142ynno\u015b\u0107 ich renderowania, przegl\u0105darka musi si\u0119 napoci\u0107 \u2013 formatuje style, wysy\u0142a\/odbiera zapytania, \u0142aduje posty, pobiera i wy\u015bwietla obrazki. G\u0142\u00f3wnym elementem przegl\u0105darki jest jej silnik JavaScript:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>w Chromie i Node.js znajdziemy V8,<\/li>\n\n\n\n<li>FireFox posiada SpiderMonkey,&nbsp;<\/li>\n\n\n\n<li>Edge ma Chakr\u0119,<\/li>\n\n\n\n<li>Safari implementuje JavaScriptCore.<\/li>\n<\/ul>\n\n\n\n<p>Przegl\u0105darki dysponuj\u0105 r\u00f3wnie\u017c swoim w\u0142asnym API (z implementacjami poszczeg\u00f3lnych, witalnych funkcji jak np. setTimeout czy alert).<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Zasada dzia\u0142ania mechanizmu Event Loop<\/strong><\/h2>\n\n\n\n<p>Ka\u017cdy z wymienionych wcze\u015bniej silnik\u00f3w implementuje Event Loop w odrobin\u0119 inny spos\u00f3b. Zacznijmy od zapoznania si\u0119 z bazow\u0105 implementacj\u0105 i og\u00f3ln\u0105 zasad\u0105 dzia\u0142ania:<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><a href=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2023\/07\/Call-stack-4.png\"><img decoding=\"async\" width=\"1024\" height=\"768\" src=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2023\/07\/Call-stack-4.png\" alt=\"Og\u00f3lna zasada dzia\u0142ania Event Loop\" class=\"wp-image-22726\" srcset=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2023\/07\/Call-stack-4.png 1024w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2023\/07\/Call-stack-4-300x225.png 300w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2023\/07\/Call-stack-4-768x576.png 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption class=\"wp-element-caption\">Ryc. 1 Og\u00f3lna zasada dzia\u0142ania Event Loop<\/figcaption><\/figure>\n\n\n\n<p>Aby zrozumie\u0107 Event Loop, musimy zrozumie\u0107 koncepcj\u0119 stosu wywo\u0142a\u0144 (Call Stack) oraz kolejki zdarze\u0144 (Event Queue).<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Stos wywo\u0142a\u0144 (Call Stack)<\/strong><\/h3>\n\n\n\n<p>Stos wywo\u0142a\u0144 jest struktur\u0105 danych, kt\u00f3ra przechowuje kontekst wywo\u0142a\u0144 funkcji. Spe\u0142nia on zasad\u0119 <a href=\"https:\/\/sii.pl\/blog\/o-krolu-ram-ie-i-rycerzach-kontekstu\/?category=development-na-twardo&amp;tag=embedded,ram,stos\" target=\"_blank\" aria-label=\" (opens in a new tab)\" rel=\"noreferrer noopener\" class=\"ek-link\">LIFO (ang. <em>Last In, First Out<\/em>)<\/a>. Kiedy funkcja jest wywo\u0142ywana, jej kontekst jest umieszczany na szczycie stosu. Nast\u0119pnie program przechodzi do wykonywania kodu wewn\u0105trz wywo\u0142anej funkcji. Je\u015bli w tej funkcji wyst\u0119puje inne wywo\u0142anie funkcji, jej dane kontekstowe s\u0105 umieszczane na szczycie stosu, a program przechodzi do wykonania kodu w nowo wywo\u0142anej funkcji.<\/p>\n\n\n\n<p>Kiedy funkcja ko\u0144czy swoje wykonanie, jej dane kontekstowe s\u0105 usuwane ze stosu wywo\u0142a\u0144, a program wraca do miejsca, w kt\u00f3rym nast\u0105pi\u0142o wywo\u0142anie funkcji i tak a\u017c do opr\u00f3\u017cnienia stosu.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Kolejka zdarze\u0144 (Callback \/ Event Queue)<\/strong><\/h3>\n\n\n\n<p>Kolejka zdarze\u0144 przechowuje zdarzenia i zadania do wykonania. To tu umieszczane s\u0105 wywo\u0142ania wskazane jako funkcje zwrotne (ang. <em>callback<\/em>) do asynchronicznych metod z Web API. Elementy z kolejki s\u0105 pobierane na stos dopiero, gdy jest on pusty, czyli wywo\u0142ana aktualnie funkcja zostanie zako\u0144czona. Powy\u017cszym strukturom ci\u0119\u017cko by si\u0119 \u017cy\u0142o, gdyby nie Web APIs.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Web APIs<\/strong><\/h3>\n\n\n\n<p>Dzi\u0119ki tym dobrodziejstwom zapewnianym przez przegl\u0105dark\u0119 otrzymujemy pot\u0119\u017cne mo\u017cliwo\u015bci. Mowa tutaj o <em>DOM<\/em> i jego zdarzeniach, o<em> AJAX, XMLHttpRequest, Fetch API<\/em>, o timerach (<em>setTimeout, setInterval<\/em>) czy <em>requestAnimationFrame<\/em>, s\u0142u\u017c\u0105cym chocia\u017cby do przeliczenia pozycji animowanego obiektu.<\/p>\n\n\n\n<p>Przegl\u0105darka przejmuje piecz\u0119 nad oczekiwaniem na zako\u0144czenie tych asynchronicznych operacji i dopiero wtedy wypycha je do Call Stacka, a w mi\u0119dzyczasie mog\u0105 wykonywa\u0107 si\u0119 inne fragmenty kodu, zapewniaj\u0105c p\u0142ynno\u015b\u0107 ca\u0142o\u015bci.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Dzia\u0142anie Event Loop<\/strong><\/h2>\n\n\n\n<p>G\u0142\u00f3wnym zadaniem Event Loop jest monitorowanie stosu wywo\u0142a\u0144 i kolejki zdarze\u0144. Je\u015bli stos wywo\u0142a\u0144 jest pusty, a kolejka zdarze\u0144 zawiera jakie\u015b zdarzenia, Event Loop przenosi zdarzenie z kolejki na stos i wykonuje je. To oznacza, \u017ce <strong>JavaScript mo\u017ce obs\u0142ugiwa\u0107 wiele zdarze\u0144 asynchronicznie<\/strong>, bez blokowania wykonywania innych zada\u0144.<\/p>\n\n\n\n<p>Jego prac\u0119 mo\u017cna podsumowa\u0107 w 3 krokach:<\/p>\n\n\n\n<ol start=\"1\" style=\"list-style-type:1\" class=\"wp-block-list\">\n<li>Pobranie zdarzenia \u2013 Event Loop oczekuje na wyst\u0105pienie zdarzenia takiego jak klikni\u0119cie myszy, przes\u0142anie \u017c\u0105dania sieciowego czy zako\u0144czenie operacji asynchronicznej.<\/li>\n\n\n\n<li>Wywo\u0142anie odpowiednich funkcji \u2013 po wyst\u0105pieniu zdarzenia Event Loop wywo\u0142uje odpowiednie funkcje zwrotne (<em>callback<\/em>) lub operacje asynchroniczne powi\u0105zane z tym zdarzeniem. Na przyk\u0142ad, je\u015bli u\u017cytkownik kliknie przycisk na stronie internetowej, Event Loop mo\u017ce wywo\u0142a\u0107 funkcj\u0119 zwrotn\u0105, kt\u00f3ra obs\u0142uguje ten event.<\/li>\n\n\n\n<li>Powr\u00f3t do oczekiwania \u2013 po wykonaniu funkcji zwrotnej, Event Loop powraca do oczekiwania na kolejne zdarzenie. Proces ten kontynuuje si\u0119 w niesko\u0144czono\u015b\u0107, zapewniaj\u0105c ci\u0105g\u0142\u0105 obs\u0142ug\u0119 zdarze\u0144 i asynchroniczno\u015b\u0107.<\/li>\n<\/ol>\n\n\n\n<p>Event Loop w JavaScript opiera si\u0119 na jednym w\u0105tku wykonawczym, co oznacza, \u017ce wszystkie operacje s\u0105 wykonywane jednow\u0105tkowo. Z tego powodu wa\u017cne jest, aby <strong>unika\u0107 blokowania operacji<\/strong>, kt\u00f3re mog\u0105 spowodowa\u0107 zatrzymanie Event Loop i tym samym wp\u0142ywa\u0107 na responsywno\u015b\u0107 aplikacji.<\/p>\n\n\n\n<p>Kiedy zdarzenie jest przetwarzane przez Event Loop, mo\u017ce mie\u0107 r\u00f3\u017cne skutki, przyk\u0142adowo:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>je\u015bli zdarzenie jest klikni\u0119ciem przycisku na stronie internetowej, Event Loop mo\u017ce wywo\u0142a\u0107 funkcj\u0119 obs\u0142uguj\u0105c\u0105 to zdarzenie, tak, aby reagowa\u0107 na klikni\u0119cie u\u017cytkownika,<\/li>\n\n\n\n<li>je\u015bli zdarzenie jest \u017c\u0105daniem sieciowym, Event Loop mo\u017ce przetworzy\u0107 odpowied\u017a serwera i wywo\u0142a\u0107 funkcj\u0119 zwrotn\u0105, kt\u00f3ra b\u0119dzie obs\u0142ugiwa\u0107 t\u0119 odpowied\u017a.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Praktyczna strona dzia\u0142ania Event Loop<\/strong><\/h3>\n\n\n\n<p>Przyk\u0142ad dzia\u0142ania w praktyce mo\u017cecie zobaczy\u0107 poni\u017cej:<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full is-resized\"><a href=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2023\/07\/console.png\"><img decoding=\"async\" width=\"484\" height=\"184\" src=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2023\/07\/console.png\" alt=\"fragment kodu\" class=\"wp-image-22728\" style=\"width:484px;height:184px\" srcset=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2023\/07\/console.png 484w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2023\/07\/console-300x114.png 300w\" sizes=\"(max-width: 484px) 100vw, 484px\" \/><\/a><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><a href=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2023\/07\/console2.png\"><img decoding=\"async\" width=\"246\" height=\"127\" src=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2023\/07\/console2.png\" alt=\"output\" class=\"wp-image-22730\"\/><\/a><\/figure>\n\n\n\n<p>Na pierwszy rzut oka wszystkie logi wylistuj\u0105 si\u0119 w kolejno\u015bci od pierwszego do trzeciego, wszak ustawili\u015bmy timeout na 0. Jednak\u017ce, zgodnie z tym, co wcze\u015bniej napisa\u0142em, timer zosta\u0142 oddelegowany do Web APIs, kt\u00f3re po up\u0142ywie \u20180\u2019, czyli de facto od razu, umie\u015bci\u0142o go na Callback Queue (kolejce zdarze\u0144). Aczkolwiek, aby ponownie z niej trafi\u0107 na Call Stack, ten Stack musi zosta\u0107 wyczyszczony z bie\u017c\u0105cych zada\u0144.<\/p>\n\n\n\n<p>Jak zatem widzimy, <strong>bardzo wa\u017cne jest zrozumienie dzia\u0142ania Event Loop<\/strong> i korzystanie z niego we w\u0142a\u015bciwy spos\u00f3b, aby unikn\u0105\u0107 problem\u00f3w z wydajno\u015bci\u0105. Przy projektowaniu aplikacji JavaScript nale\u017cy rozwa\u017cy\u0107 wykorzystanie funkcji asynchronicznych, obietnic (<em>promises<\/em>) i <em>async\/await<\/em>, kt\u00f3re pozwalaj\u0105 na bardziej czytelne i wydajne zarz\u0105dzanie asynchronicznym kodem.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Implementacja mechanizmu Event Loop w silniku V8<\/strong><\/h2>\n\n\n\n<p>Jak ju\u017c wspomnia\u0142em, ka\u017cdy silnik przegl\u0105darki implementuje Event Loop w nieco innych spos\u00f3b, co mo\u017ce prowadzi\u0107 do pewnych r\u00f3\u017cnic w dzia\u0142aniu. Zapoznajmy si\u0119 z jego implementacj\u0105 w silniku V8 (Chrome, Node.js):<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><a href=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2023\/07\/ezgif.com-video-to-gif-1.gif\"><img decoding=\"async\" width=\"600\" height=\"450\" src=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2023\/07\/ezgif.com-video-to-gif-1.gif\" alt=\"Implementacja Event Loop w silniku V8\" class=\"wp-image-22733\"\/><\/a><figcaption class=\"wp-element-caption\">Ryc. 2 Implementacja Event Loop w silniku V8<\/figcaption><\/figure>\n\n\n\n<p>Mo\u017cemy zauwa\u017cy\u0107, \u017ce schemat implementacyjny jest bardzo podobny do og\u00f3lnego schematu implementacji Event Loop, z tym, \u017ce w Callback Queue rozpada si\u0119 na trzy podkolejki definiuj\u0105ce swoje w\u0142asne odpowiedzialno\u015bci. Kolejno s\u0105 to:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Microtask Queue<\/strong> \u2013 realizuje operacje odpowiedzialne za <em>Promises, <\/em>zatem m\u00f3wimy tutaj o wszelkich metodach <em>resolve<\/em> \/ <em>reject<\/em>. Z tej kolejki korzysta tak\u017ce <em>setImmediate<\/em> w Node.js (gdy chcemy wykona\u0107 fragment kodu asynchronicznie, ale tak szybko, jak to jest mo\u017cliwe) oraz <em>MutationObserver <\/em>(stosowany w celu obserwacji zmian struktury HTML danych element\u00f3w).<\/li>\n\n\n\n<li><strong>Render Queue<\/strong> \u2013 odpowiada za zebranie wszystkich zada\u0144, kt\u00f3re musz\u0105 si\u0119 wykona\u0107 przed nast\u0119pnym renderowania si\u0119 strony. Do tej kolejki trafi chocia\u017cby wspomniana wcze\u015bniej&nbsp;&nbsp; funkcja <em>requestAnimationFrame<\/em>.<\/li>\n\n\n\n<li><strong>Task Queue<\/strong> \u2013 ostatnia kolejka, jednocze\u015bnie zachowuj\u0105ca si\u0119 odrobin\u0119 odmiennie od poprzednich dw\u00f3ch. Odpowiedzialna jest za zebranie wszystkich callback\u00f3w do WebAPI (np. <em>setTimeout<\/em>). Odmienno\u015b\u0107 zachowania tej kolejki polega na tym, i\u017c proceduje tylko jeden element, po kt\u00f3rym nast\u0119puje wywo\u0142anie Event Loop i przenosi nas na Call Stack. Zatem, nawet je\u017celi jakie\u015b zadania pozosta\u0142y w Task Queue, mo\u017ce ona wykona\u0107 tylko jedn\u0105 operacj\u0119 \u2018per loop\u2019. Poprzednie dwie kolejki wykonuj\u0105 swoje zadania w p\u0119tli, a\u017c do opr\u00f3\u017cnienia swojej kolejki.<\/li>\n<\/ul>\n\n\n<div class=\"nsw-o-blogersii-banner\">\n            <picture>\n            <source srcset=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2026\/04\/Blog-Digital-Desktop_.jpg\" media=\"(min-width: 992px)\" >\n            <source srcset=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2026\/04\/Blog-Digital-Mob_.jpg\" media=\"(min-width: 300px)\" >            <img decoding=\"async\" src=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2026\/04\/Blog-Digital-Desktop_.jpg\" alt=\"\"  class=\"\"  >\n        <\/picture>\n        <div class=\"cnt\">\n                    <div class=\"nsw-m-title-block -h3 -invert  -has-title-margin-bottom-0 -has-title-font-weight-bold\">\n                                <h2 class=\"nsw-m-title-block__title\" >Digital<\/h2>\n                <\/div>\n                            <p class=\"has-nsw-p-4-font-size has-invert-color\">\n                Zwi\u0119ksz zysk i poszerzaj grono zadowolonych klient\u00f3w dzi\u0119ki naszym us\u0142ugom in\u017cynierii oprogramowania, e-commerce, mobile i digital customer experience.\n            <\/p>\n                            <a  href=\"https:\/\/sii.pl\/oferta\/digital\/\" class=\"nsw-a-button -ghost -banner-button\"   >\n        <span>Oferta Digital<\/span>\n    <\/a>\n            <\/div>\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Podsumowanie<\/strong><\/h2>\n\n\n\n<p>Ciesz\u0119 si\u0119, \u017ce doczytali\u015bcie artyku\u0142 do ko\u0144ca! Jak widzicie, Event Loop jest niebywale istotnym elementem ka\u017cdego przegl\u0105darkowego silnika. <\/p>\n\n\n\n<p>Jest on zaprojektowany w taki spos\u00f3b, aby maksymalnie wykorzystywa\u0107 zasoby dost\u0119pne w \u015brodowisku. Dzi\u0119ki temu, aplikacje mog\u0105 dzia\u0142a\u0107 wydajnie i skutecznie zarz\u0105dza\u0107 zasobami. Znajomo\u015b\u0107 jego specyfiki pozwala wszystkim programistom tworz\u0105cym w \u015brodowisku JavaScript pisa\u0107 bardziej wydajne, responsywne i skalowalne aplikacje asynchroniczne.<\/p>\n\n\n\n<p>***<\/p>\n\n\n\n<p>Je\u015bli interesuje Ci\u0119 tematyka stosu i RAM-u, <a href=\"O%20kr\u00f3lu%20RAM-ie%20i%20rycerzach%20kontekstu\" target=\"_blank\" aria-label=\" (opens in a new tab)\" rel=\"noreferrer noopener\" class=\"ek-link\" rel=\"nofollow\" >polecamy artyku\u0142 naszego eksperta<\/a>.<\/p>\n\n\n<div class=\"kk-star-ratings kksr-auto kksr-align-left kksr-valign-bottom\"\n    data-payload='{&quot;align&quot;:&quot;left&quot;,&quot;id&quot;:&quot;22725&quot;,&quot;slug&quot;:&quot;default&quot;,&quot;valign&quot;:&quot;bottom&quot;,&quot;ignore&quot;:&quot;&quot;,&quot;reference&quot;:&quot;auto&quot;,&quot;class&quot;:&quot;&quot;,&quot;count&quot;:&quot;14&quot;,&quot;legendonly&quot;:&quot;&quot;,&quot;readonly&quot;:&quot;&quot;,&quot;score&quot;:&quot;5&quot;,&quot;starsonly&quot;:&quot;&quot;,&quot;best&quot;:&quot;5&quot;,&quot;gap&quot;:&quot;2&quot;,&quot;greet&quot;:&quot;&quot;,&quot;legend&quot;:&quot;5\\\/5&quot;,&quot;size&quot;:&quot;30&quot;,&quot;title&quot;:&quot;Event Loop, czyli w jakiej kolejno\u015bci przetwarzany jest kod przez JavaScript&quot;,&quot;width&quot;:&quot;159&quot;,&quot;_legend&quot;:&quot;{score}\\\/5&quot;,&quot;font_factor&quot;:&quot;1.25&quot;}'>\n            \n<div class=\"kksr-stars\">\n    \n<div class=\"kksr-stars-inactive\">\n            <div class=\"kksr-star\" data-star=\"1\" style=\"padding-right: 2px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 30px; height: 30px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"2\" style=\"padding-right: 2px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 30px; height: 30px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"3\" style=\"padding-right: 2px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 30px; height: 30px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"4\" style=\"padding-right: 2px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 30px; height: 30px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"5\" style=\"padding-right: 2px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 30px; height: 30px;\"><\/div>\n        <\/div>\n    <\/div>\n    \n<div class=\"kksr-stars-active\" style=\"width: 159px;\">\n            <div class=\"kksr-star\" style=\"padding-right: 2px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 30px; height: 30px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 2px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 30px; height: 30px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 2px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 30px; height: 30px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 2px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 30px; height: 30px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 2px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 30px; height: 30px;\"><\/div>\n        <\/div>\n    <\/div>\n<\/div>\n                \n\n<div class=\"kksr-legend\" style=\"font-size: 24px;\">\n            5\/5    <\/div>\n    <\/div>\n","protected":false},"excerpt":{"rendered":"<p>JavaScript jest j\u0119zykiem do\u015b\u0107 mocno polaryzuj\u0105cym \u015brodowisko deweloperskie. Powiedzie\u0107, \u017ce pewne mechanizmy w nim zawarte s\u0105 specyficzne, to jakby nie &hellip; <a class=\"continued-btn\" href=\"https:\/\/sii.pl\/blog\/event-loop-czyli-w-jakiej-kolejnosci-przetwarzany-jest-kod-przez-javascript\/\">Continued<\/a><\/p>\n","protected":false},"author":541,"featured_media":22736,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_editorskit_title_hidden":false,"_editorskit_reading_time":0,"_editorskit_is_block_options_detached":false,"_editorskit_block_options_position":"{}","inline_featured_image":false,"footnotes":""},"categories":[1314],"tags":[2427,1752,202,1121],"class_list":["post-22725","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-development-na-twardo","tag-digital","tag-event-loop","tag-javascript","tag-stos"],"acf":[],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.9 - aioseo.com -->\n\t<meta name=\"description\" content=\"JavaScript jest j\u0119zykiem stricte jednow\u0105tkowym, a z\u0142udzenie wielow\u0105tkowo\u015bci uzyskujemy dzi\u0119ki bohaterowi dzisiejszego artyku\u0142u, czyli mechanizmowi Event Loop\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Przemys\u0142aw Barzyk\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/sii.pl\/blog\/event-loop-czyli-w-jakiej-kolejnosci-przetwarzany-jest-kod-przez-javascript\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.9\" \/>\n\t\t<meta property=\"og:locale\" content=\"pl_PL\" \/>\n\t\t<meta property=\"og:site_name\" content=\"blogersii\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"Event Loop: kolejno\u015b\u0107 przetwarzania kodu przez JavaScript\" \/>\n\t\t<meta property=\"og:description\" content=\"JavaScript jest j\u0119zykiem stricte jednow\u0105tkowym, a z\u0142udzenie wielow\u0105tkowo\u015bci uzyskujemy dzi\u0119ki bohaterowi dzisiejszego artyku\u0142u, czyli mechanizmowi Event Loop\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/sii.pl\/blog\/event-loop-czyli-w-jakiej-kolejnosci-przetwarzany-jest-kod-przez-javascript\/\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2023\/07\/Event-Loop-czyli-w-jakiej-kolejnosci-przetwarzany-jest-kod-przez-JavaScript.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2023\/07\/Event-Loop-czyli-w-jakiej-kolejnosci-przetwarzany-jest-kod-przez-JavaScript.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"733\" \/>\n\t\t<meta property=\"og:image:height\" content=\"456\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2023-07-20T03:00:00+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2026-05-07T12:48:07+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/Sii.Polska\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary\" \/>\n\t\t<meta name=\"twitter:title\" content=\"Event Loop: kolejno\u015b\u0107 przetwarzania kodu przez JavaScript\" \/>\n\t\t<meta name=\"twitter:description\" content=\"JavaScript jest j\u0119zykiem stricte jednow\u0105tkowym, a z\u0142udzenie wielow\u0105tkowo\u015bci uzyskujemy dzi\u0119ki bohaterowi dzisiejszego artyku\u0142u, czyli mechanizmowi Event Loop\" \/>\n\t\t<meta name=\"twitter:image\" content=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2023\/07\/Event-Loop-czyli-w-jakiej-kolejnosci-przetwarzany-jest-kod-przez-JavaScript.jpg\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/sii.pl\\\/blog\\\/event-loop-czyli-w-jakiej-kolejnosci-przetwarzany-jest-kod-przez-javascript\\\/#article\",\"name\":\"Event Loop: kolejno\\u015b\\u0107 przetwarzania kodu przez JavaScript\",\"description\":\"JavaScript jest j\\u0119zykiem stricte jednow\\u0105tkowym, a z\\u0142udzenie wielow\\u0105tkowo\\u015bci uzyskujemy dzi\\u0119ki bohaterowi dzisiejszego artyku\\u0142u, czyli mechanizmowi Event Loop\",\"inLanguage\":\"pl-PL\",\"headline\":\"Event Loop, czyli w jakiej kolejno\\u015bci przetwarzany jest kod przez JavaScript\",\"author\":{\"@id\":\"https:\\\/\\\/sii.pl\\\/blog\\\/author\\\/pbarzyk\\\/#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/sii.pl\\\/#organization\"},\"datePublished\":\"2023-07-20T03:00:00+02:00\",\"dateModified\":\"2026-05-07T12:48:07+02:00\",\"commentCount\":1,\"articleSection\":\"Development na twardo, Digital, Event Loop, JavaScript, Stos\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/sii.pl\\\/blog\\\/event-loop-czyli-w-jakiej-kolejnosci-przetwarzany-jest-kod-przez-javascript\\\/#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/sii.pl\\\/blog\\\/event-loop-czyli-w-jakiej-kolejnosci-przetwarzany-jest-kod-przez-javascript\\\/#webpage\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/sii.pl\\\/blog\\\/wp-content\\\/uploads\\\/2023\\\/07\\\/Event-Loop-czyli-w-jakiej-kolejnosci-przetwarzany-jest-kod-przez-JavaScript.jpg\",\"@id\":\"https:\\\/\\\/sii.pl\\\/blog\\\/event-loop-czyli-w-jakiej-kolejnosci-przetwarzany-jest-kod-przez-javascript\\\/#articleImage\",\"width\":733,\"height\":456,\"caption\":\"Event Loop, czyli w jakiej kolejno\\u015bci przetwarzany jest kod przez JavaScript\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/sii.pl\\\/blog\\\/event-loop-czyli-w-jakiej-kolejnosci-przetwarzany-jest-kod-przez-javascript\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/sii.pl\\\/blog#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/sii.pl\\\/blog\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/sii.pl\\\/blog\\\/development-na-twardo\\\/#listItem\",\"name\":\"Development na twardo\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/sii.pl\\\/blog\\\/development-na-twardo\\\/#listItem\",\"position\":2,\"name\":\"Development na twardo\",\"item\":\"https:\\\/\\\/sii.pl\\\/blog\\\/development-na-twardo\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/sii.pl\\\/blog\\\/event-loop-czyli-w-jakiej-kolejnosci-przetwarzany-jest-kod-przez-javascript\\\/#listItem\",\"name\":\"Event Loop, czyli w jakiej kolejno\\u015bci przetwarzany jest kod przez JavaScript\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/sii.pl\\\/blog#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/sii.pl\\\/blog\\\/event-loop-czyli-w-jakiej-kolejnosci-przetwarzany-jest-kod-przez-javascript\\\/#listItem\",\"position\":3,\"name\":\"Event Loop, czyli w jakiej kolejno\\u015bci przetwarzany jest kod przez JavaScript\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/sii.pl\\\/blog\\\/development-na-twardo\\\/#listItem\",\"name\":\"Development na twardo\"}}]},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/sii.pl\\\/#organization\",\"name\":\"Sii Polska\",\"url\":\"https:\\\/\\\/sii.pl\\\/blog\\\/\",\"sameAs\":[\"https:\\\/\\\/www.instagram.com\\\/siipolska\\\/\",\"https:\\\/\\\/www.tiktok.com\\\/@siipolska\",\"https:\\\/\\\/www.youtube.com\\\/channel\\\/UCQ3UQ7RJPEYnAWC_rPE5Dxg\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/sii-polska\",\"https:\\\/\\\/clutch.co\\\/profile\\\/sii-poland\",\"https:\\\/\\\/www.crunchbase.com\\\/organization\\\/sii\",\"https:\\\/\\\/www.wikidata.org\\\/wiki\\\/Q16601096\"]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/sii.pl\\\/blog\\\/event-loop-czyli-w-jakiej-kolejnosci-przetwarzany-jest-kod-przez-javascript\\\/#webpage\",\"url\":\"https:\\\/\\\/sii.pl\\\/blog\\\/event-loop-czyli-w-jakiej-kolejnosci-przetwarzany-jest-kod-przez-javascript\\\/\",\"name\":\"Event Loop: kolejno\\u015b\\u0107 przetwarzania kodu przez JavaScript\",\"description\":\"JavaScript jest j\\u0119zykiem stricte jednow\\u0105tkowym, a z\\u0142udzenie wielow\\u0105tkowo\\u015bci uzyskujemy dzi\\u0119ki bohaterowi dzisiejszego artyku\\u0142u, czyli mechanizmowi Event Loop\",\"inLanguage\":\"pl-PL\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/sii.pl\\\/blog\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/sii.pl\\\/blog\\\/event-loop-czyli-w-jakiej-kolejnosci-przetwarzany-jest-kod-przez-javascript\\\/#breadcrumblist\"},\"author\":\"https:\\\/\\\/sii.pl\\\/blog\\\/author\\\/pbarzyk\\\/#author\",\"creator\":\"https:\\\/\\\/sii.pl\\\/blog\\\/author\\\/pbarzyk\\\/#author\",\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/sii.pl\\\/blog\\\/wp-content\\\/uploads\\\/2023\\\/07\\\/Event-Loop-czyli-w-jakiej-kolejnosci-przetwarzany-jest-kod-przez-JavaScript.jpg\",\"@id\":\"https:\\\/\\\/sii.pl\\\/blog\\\/event-loop-czyli-w-jakiej-kolejnosci-przetwarzany-jest-kod-przez-javascript\\\/#mainImage\",\"width\":733,\"height\":456,\"caption\":\"Event Loop, czyli w jakiej kolejno\\u015bci przetwarzany jest kod przez JavaScript\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/sii.pl\\\/blog\\\/event-loop-czyli-w-jakiej-kolejnosci-przetwarzany-jest-kod-przez-javascript\\\/#mainImage\"},\"datePublished\":\"2023-07-20T03:00:00+02:00\",\"dateModified\":\"2026-05-07T12:48:07+02:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/sii.pl\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/sii.pl\\\/blog\\\/\",\"name\":\"blogersii\",\"description\":\"Blog technologiczny Sii \\u2013 praktyczna wiedza od ekspert\\u00f3w\",\"inLanguage\":\"pl-PL\",\"publisher\":{\"@id\":\"https:\\\/\\\/sii.pl\\\/#organization\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"Event Loop: kolejno\u015b\u0107 przetwarzania kodu przez JavaScript","description":"JavaScript jest j\u0119zykiem stricte jednow\u0105tkowym, a z\u0142udzenie wielow\u0105tkowo\u015bci uzyskujemy dzi\u0119ki bohaterowi dzisiejszego artyku\u0142u, czyli mechanizmowi Event Loop","canonical_url":"https:\/\/sii.pl\/blog\/event-loop-czyli-w-jakiej-kolejnosci-przetwarzany-jest-kod-przez-javascript\/","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/sii.pl\/blog\/event-loop-czyli-w-jakiej-kolejnosci-przetwarzany-jest-kod-przez-javascript\/#article","name":"Event Loop: kolejno\u015b\u0107 przetwarzania kodu przez JavaScript","description":"JavaScript jest j\u0119zykiem stricte jednow\u0105tkowym, a z\u0142udzenie wielow\u0105tkowo\u015bci uzyskujemy dzi\u0119ki bohaterowi dzisiejszego artyku\u0142u, czyli mechanizmowi Event Loop","inLanguage":"pl-PL","headline":"Event Loop, czyli w jakiej kolejno\u015bci przetwarzany jest kod przez JavaScript","author":{"@id":"https:\/\/sii.pl\/blog\/author\/pbarzyk\/#author"},"publisher":{"@id":"https:\/\/sii.pl\/#organization"},"datePublished":"2023-07-20T03:00:00+02:00","dateModified":"2026-05-07T12:48:07+02:00","commentCount":1,"articleSection":"Development na twardo, Digital, Event Loop, JavaScript, Stos","mainEntityOfPage":{"@id":"https:\/\/sii.pl\/blog\/event-loop-czyli-w-jakiej-kolejnosci-przetwarzany-jest-kod-przez-javascript\/#webpage"},"isPartOf":{"@id":"https:\/\/sii.pl\/blog\/event-loop-czyli-w-jakiej-kolejnosci-przetwarzany-jest-kod-przez-javascript\/#webpage"},"image":{"@type":"ImageObject","url":"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2023\/07\/Event-Loop-czyli-w-jakiej-kolejnosci-przetwarzany-jest-kod-przez-JavaScript.jpg","@id":"https:\/\/sii.pl\/blog\/event-loop-czyli-w-jakiej-kolejnosci-przetwarzany-jest-kod-przez-javascript\/#articleImage","width":733,"height":456,"caption":"Event Loop, czyli w jakiej kolejno\u015bci przetwarzany jest kod przez JavaScript"}},{"@type":"BreadcrumbList","@id":"https:\/\/sii.pl\/blog\/event-loop-czyli-w-jakiej-kolejnosci-przetwarzany-jest-kod-przez-javascript\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/sii.pl\/blog#listItem","position":1,"name":"Home","item":"https:\/\/sii.pl\/blog","nextItem":{"@type":"ListItem","@id":"https:\/\/sii.pl\/blog\/development-na-twardo\/#listItem","name":"Development na twardo"}},{"@type":"ListItem","@id":"https:\/\/sii.pl\/blog\/development-na-twardo\/#listItem","position":2,"name":"Development na twardo","item":"https:\/\/sii.pl\/blog\/development-na-twardo\/","nextItem":{"@type":"ListItem","@id":"https:\/\/sii.pl\/blog\/event-loop-czyli-w-jakiej-kolejnosci-przetwarzany-jest-kod-przez-javascript\/#listItem","name":"Event Loop, czyli w jakiej kolejno\u015bci przetwarzany jest kod przez JavaScript"},"previousItem":{"@type":"ListItem","@id":"https:\/\/sii.pl\/blog#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/sii.pl\/blog\/event-loop-czyli-w-jakiej-kolejnosci-przetwarzany-jest-kod-przez-javascript\/#listItem","position":3,"name":"Event Loop, czyli w jakiej kolejno\u015bci przetwarzany jest kod przez JavaScript","previousItem":{"@type":"ListItem","@id":"https:\/\/sii.pl\/blog\/development-na-twardo\/#listItem","name":"Development na twardo"}}]},{"@type":"Organization","@id":"https:\/\/sii.pl\/#organization","name":"Sii Polska","url":"https:\/\/sii.pl\/blog\/","sameAs":["https:\/\/www.instagram.com\/siipolska\/","https:\/\/www.tiktok.com\/@siipolska","https:\/\/www.youtube.com\/channel\/UCQ3UQ7RJPEYnAWC_rPE5Dxg","https:\/\/www.linkedin.com\/company\/sii-polska","https:\/\/clutch.co\/profile\/sii-poland","https:\/\/www.crunchbase.com\/organization\/sii","https:\/\/www.wikidata.org\/wiki\/Q16601096"]},{"@type":"WebPage","@id":"https:\/\/sii.pl\/blog\/event-loop-czyli-w-jakiej-kolejnosci-przetwarzany-jest-kod-przez-javascript\/#webpage","url":"https:\/\/sii.pl\/blog\/event-loop-czyli-w-jakiej-kolejnosci-przetwarzany-jest-kod-przez-javascript\/","name":"Event Loop: kolejno\u015b\u0107 przetwarzania kodu przez JavaScript","description":"JavaScript jest j\u0119zykiem stricte jednow\u0105tkowym, a z\u0142udzenie wielow\u0105tkowo\u015bci uzyskujemy dzi\u0119ki bohaterowi dzisiejszego artyku\u0142u, czyli mechanizmowi Event Loop","inLanguage":"pl-PL","isPartOf":{"@id":"https:\/\/sii.pl\/blog\/#website"},"breadcrumb":{"@id":"https:\/\/sii.pl\/blog\/event-loop-czyli-w-jakiej-kolejnosci-przetwarzany-jest-kod-przez-javascript\/#breadcrumblist"},"author":"https:\/\/sii.pl\/blog\/author\/pbarzyk\/#author","creator":"https:\/\/sii.pl\/blog\/author\/pbarzyk\/#author","image":{"@type":"ImageObject","url":"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2023\/07\/Event-Loop-czyli-w-jakiej-kolejnosci-przetwarzany-jest-kod-przez-JavaScript.jpg","@id":"https:\/\/sii.pl\/blog\/event-loop-czyli-w-jakiej-kolejnosci-przetwarzany-jest-kod-przez-javascript\/#mainImage","width":733,"height":456,"caption":"Event Loop, czyli w jakiej kolejno\u015bci przetwarzany jest kod przez JavaScript"},"primaryImageOfPage":{"@id":"https:\/\/sii.pl\/blog\/event-loop-czyli-w-jakiej-kolejnosci-przetwarzany-jest-kod-przez-javascript\/#mainImage"},"datePublished":"2023-07-20T03:00:00+02:00","dateModified":"2026-05-07T12:48:07+02:00"},{"@type":"WebSite","@id":"https:\/\/sii.pl\/blog\/#website","url":"https:\/\/sii.pl\/blog\/","name":"blogersii","description":"Blog technologiczny Sii \u2013 praktyczna wiedza od ekspert\u00f3w","inLanguage":"pl-PL","publisher":{"@id":"https:\/\/sii.pl\/#organization"}}]},"og:locale":"pl_PL","og:site_name":"blogersii","og:type":"article","og:title":"Event Loop: kolejno\u015b\u0107 przetwarzania kodu przez JavaScript","og:description":"JavaScript jest j\u0119zykiem stricte jednow\u0105tkowym, a z\u0142udzenie wielow\u0105tkowo\u015bci uzyskujemy dzi\u0119ki bohaterowi dzisiejszego artyku\u0142u, czyli mechanizmowi Event Loop","og:url":"https:\/\/sii.pl\/blog\/event-loop-czyli-w-jakiej-kolejnosci-przetwarzany-jest-kod-przez-javascript\/","og:image":"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2023\/07\/Event-Loop-czyli-w-jakiej-kolejnosci-przetwarzany-jest-kod-przez-JavaScript.jpg","og:image:secure_url":"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2023\/07\/Event-Loop-czyli-w-jakiej-kolejnosci-przetwarzany-jest-kod-przez-JavaScript.jpg","og:image:width":733,"og:image:height":456,"article:published_time":"2023-07-20T03:00:00+00:00","article:modified_time":"2026-05-07T12:48:07+00:00","article:publisher":"https:\/\/www.facebook.com\/Sii.Polska","twitter:card":"summary","twitter:title":"Event Loop: kolejno\u015b\u0107 przetwarzania kodu przez JavaScript","twitter:description":"JavaScript jest j\u0119zykiem stricte jednow\u0105tkowym, a z\u0142udzenie wielow\u0105tkowo\u015bci uzyskujemy dzi\u0119ki bohaterowi dzisiejszego artyku\u0142u, czyli mechanizmowi Event Loop","twitter:image":"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2023\/07\/Event-Loop-czyli-w-jakiej-kolejnosci-przetwarzany-jest-kod-przez-JavaScript.jpg"},"aioseo_meta_data":{"post_id":"22725","title":"Event Loop: kolejno\u015b\u0107 przetwarzania kodu przez JavaScript","description":"JavaScript jest j\u0119zykiem stricte jednow\u0105tkowym, a z\u0142udzenie wielow\u0105tkowo\u015bci uzyskujemy dzi\u0119ki bohaterowi dzisiejszego artyku\u0142u, czyli mechanizmowi Event Loop","keywords":null,"keyphrases":{"focus":{"keyphrase":"","score":0,"analysis":{"keyphraseInTitle":{"score":0,"maxScore":9,"error":1}}},"additional":[]},"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":"","og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"Article","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":"-1","robots_max_videopreview":"-1","robots_max_imagepreview":"large","priority":null,"frequency":"default","local_seo":null,"limit_modified_date":false,"created":"2023-07-06 12:46:15","updated":"2026-05-07 13:43:51","ai":null,"breadcrumb_settings":null,"seo_analyzer_scan_date":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/sii.pl\/blog\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/sii.pl\/blog\/development-na-twardo\/\" title=\"Development na twardo\">Development na twardo<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tEvent Loop, czyli w jakiej kolejno\u015bci przetwarzany jest kod przez JavaScript\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/sii.pl\/blog"},{"label":"Development na twardo","link":"https:\/\/sii.pl\/blog\/development-na-twardo\/"},{"label":"Event Loop, czyli w jakiej kolejno\u015bci przetwarzany jest kod przez JavaScript","link":"https:\/\/sii.pl\/blog\/event-loop-czyli-w-jakiej-kolejnosci-przetwarzany-jest-kod-przez-javascript\/"}],"republish_history":[],"featured_media_url":"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2023\/07\/Event-Loop-czyli-w-jakiej-kolejnosci-przetwarzany-jest-kod-przez-JavaScript.jpg","category_names":["Development na twardo"],"_links":{"self":[{"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/posts\/22725","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/users\/541"}],"replies":[{"embeddable":true,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/comments?post=22725"}],"version-history":[{"count":3,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/posts\/22725\/revisions"}],"predecessor-version":[{"id":33831,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/posts\/22725\/revisions\/33831"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/media\/22736"}],"wp:attachment":[{"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/media?parent=22725"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/categories?post=22725"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/tags?post=22725"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}