{"id":3043,"date":"2024-12-15T17:25:43","date_gmt":"2024-12-15T10:25:43","guid":{"rendered":"https:\/\/fstack.io.vn\/?p=3043"},"modified":"2024-12-15T18:21:41","modified_gmt":"2024-12-15T11:21:41","slug":"event-loop-la-gi1-so-kien-thuc-cot-loi-ve-event-loop","status":"publish","type":"post","link":"https:\/\/fstack.io.vn\/blog\/event-loop-la-gi1-so-kien-thuc-cot-loi-ve-event-loop\/","title":{"rendered":"Event Loop l\u00e0 g\u00ec? 1 S\u1ed1 ki\u1ebfn th\u1ee9c c\u1ed1t l\u00f5i v\u1ec1 Event Loop."},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"3043\" class=\"elementor elementor-3043\" data-elementor-post-type=\"post\">\n\t\t\t\t<div class=\"elementor-element elementor-element-97d5106 e-flex e-con-boxed e-con e-parent\" data-id=\"97d5106\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-71ad393 elementor-widget elementor-widget-text-editor\" data-id=\"71ad393\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p data-pm-slice=\"1 1 []\">Khi b\u1ea1n vi\u1ebft m\u1ed9t \u1ee9ng d\u1ee5ng JavaScript, \u0111\u1eb7c bi\u1ec7t l\u00e0 trong tr\u00ecnh duy\u1ec7t ho\u1eb7c Node.js, vi\u1ec7c x\u1eed l\u00fd b\u1ea5t \u0111\u1ed3ng b\u1ed9 l\u00e0 m\u1ed9t th\u00e1ch th\u1ee9c l\u1edbn. Event Loop ch\u00ednh l\u00e0 tr\u00e1i tim c\u1ee7a c\u00e1ch JavaScript x\u1eed l\u00fd b\u1ea5t \u0111\u1ed3ng b\u1ed9, gi\u00fap b\u1ea1n hi\u1ec3u \u0111\u01b0\u1ee3c t\u1ea1i sao ng\u00f4n ng\u1eef n\u00e0y c\u00f3 th\u1ec3 ho\u1ea1t \u0111\u1ed9ng \u0111\u1ed3ng th\u1eddi m\u00e0 ch\u1ec9 c\u00f3 m\u1ed9t lu\u1ed3ng duy nh\u1ea5t.<\/p><p>Trong b\u00e0i vi\u1ebft n\u00e0y, ch\u00fang ta s\u1ebd t\u00ecm hi\u1ec3u chi ti\u1ebft v\u1ec1 Event Loop, c\u00e1ch n\u00f3 ho\u1ea1t \u0111\u1ed9ng, v\u00e0 t\u1ea1i sao n\u00f3 qu\u00e1 quan tr\u1ecdng \u0111\u1ed1i v\u1edbi JavaScript.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a11752b elementor-widget elementor-widget-heading\" data-id=\"a11752b\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_82_2 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Danh m\u1ee5c b\u00e0i vi\u1ebft<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/fstack.io.vn\/blog\/event-loop-la-gi1-so-kien-thuc-cot-loi-ve-event-loop\/#1Event_Loop_la_gi\" >1.Event Loop l\u00e0 g\u00ec?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/fstack.io.vn\/blog\/event-loop-la-gi1-so-kien-thuc-cot-loi-ve-event-loop\/#2Cach_Event_Loop_hoat_dong\" >2.C\u00e1ch Event Loop ho\u1ea1t \u0111\u1ed9ng<\/a><ul class='ez-toc-list-level-5' ><li class='ez-toc-heading-level-5'><ul class='ez-toc-list-level-5' ><li class='ez-toc-heading-level-5'><ul class='ez-toc-list-level-5' ><li class='ez-toc-heading-level-5'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/fstack.io.vn\/blog\/event-loop-la-gi1-so-kien-thuc-cot-loi-ve-event-loop\/#21_Call_Stack_Ngan_xep_loi_goi\" >2.1 Call Stack (Ng\u0103n x\u1ebfp l\u1eddi g\u1ecdi)<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-5'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/fstack.io.vn\/blog\/event-loop-la-gi1-so-kien-thuc-cot-loi-ve-event-loop\/#22_Web_APIs\" >2.2 Web APIs<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-5'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/fstack.io.vn\/blog\/event-loop-la-gi1-so-kien-thuc-cot-loi-ve-event-loop\/#23_Task_Queue_Hang_doi_tac_vu\" >2.3 Task Queue (H\u00e0ng \u0111\u1ee3i t\u00e1c v\u1ee5)<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-5'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/fstack.io.vn\/blog\/event-loop-la-gi1-so-kien-thuc-cot-loi-ve-event-loop\/#24_Microtask_Queue_Hang_doi_vi_tac_vu\" >2.4 Microtask Queue (H\u00e0ng \u0111\u1ee3i vi t\u00e1c v\u1ee5)<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-5'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/fstack.io.vn\/blog\/event-loop-la-gi1-so-kien-thuc-cot-loi-ve-event-loop\/#25_Event_Loop\" >2.5 Event Loop<\/a><\/li><\/ul><\/li><\/ul><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/fstack.io.vn\/blog\/event-loop-la-gi1-so-kien-thuc-cot-loi-ve-event-loop\/#3Microtask_vs_Macrotask\" >3.Microtask vs Macrotask<\/a><ul class='ez-toc-list-level-5' ><li class='ez-toc-heading-level-5'><ul class='ez-toc-list-level-5' ><li class='ez-toc-heading-level-5'><ul class='ez-toc-list-level-5' ><li class='ez-toc-heading-level-5'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/fstack.io.vn\/blog\/event-loop-la-gi1-so-kien-thuc-cot-loi-ve-event-loop\/#31_Microtask\" >3.1 Microtask<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-5'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/fstack.io.vn\/blog\/event-loop-la-gi1-so-kien-thuc-cot-loi-ve-event-loop\/#32_Macrotask\" >3.2 Macrotask<\/a><\/li><\/ul><\/li><\/ul><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/fstack.io.vn\/blog\/event-loop-la-gi1-so-kien-thuc-cot-loi-ve-event-loop\/#4Ung_dung_thuc_te\" >4.\u1ee8ng d\u1ee5ng th\u1ef1c t\u1ebf<\/a><ul class='ez-toc-list-level-5' ><li class='ez-toc-heading-level-5'><ul class='ez-toc-list-level-5' ><li class='ez-toc-heading-level-5'><ul class='ez-toc-list-level-5' ><li class='ez-toc-heading-level-5'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/fstack.io.vn\/blog\/event-loop-la-gi1-so-kien-thuc-cot-loi-ve-event-loop\/#41_Toi_uu_hieu_suat\" >4.1. T\u1ed1i \u01b0u hi\u1ec7u su\u1ea5t<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-5'><a class=\"ez-toc-link ez-toc-heading-13\" href=\"https:\/\/fstack.io.vn\/blog\/event-loop-la-gi1-so-kien-thuc-cot-loi-ve-event-loop\/#42_Tranh_cac_loi_kho_hieu\" >4.2. Tr\u00e1nh c\u00e1c l\u1ed7i kh\u00f3 hi\u1ec3u<\/a><\/li><\/ul><\/li><\/ul><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-14\" href=\"https:\/\/fstack.io.vn\/blog\/event-loop-la-gi1-so-kien-thuc-cot-loi-ve-event-loop\/#5Ket_luan\" >5.K\u1ebft lu\u1eadn<\/a><\/li><\/ul><\/nav><\/div>\n<h2 class=\"elementor-heading-title elementor-size-default\"><span class=\"ez-toc-section\" id=\"1Event_Loop_la_gi\"><\/span>1.<span>Event Loop l\u00e0 g\u00ec?<\/span><span><\/span><br><span class=\"ez-toc-section-end\"><\/span><\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-175efa1 elementor-widget elementor-widget-text-editor\" data-id=\"175efa1\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p data-pm-slice=\"1 1 []\">Event Loop l\u00e0 m\u1ed9t c\u01a1 ch\u1ebf trong JavaScript \u0111\u1ec3 x\u1eed l\u00fd c\u00e1c s\u1ef1 ki\u1ec7n, th\u1ef1c thi code, thu th\u1eadp k\u1ebft qu\u1ea3 t\u1eeb c\u00e1c operations b\u1ea5t \u0111\u1ed3ng b\u1ed9 (nh\u01b0 API call, timeout), v\u00e0 ch\u1ea1y c\u00e1c tasks c\u00f2n l\u1ea1i trong h\u00e0ng \u0111\u1ee3i (queue).<\/p><p>T\u1ea5t c\u1ea3 nh\u1eefng g\u00ec JavaScript th\u1ef1c hi\u1ec7n \u0111\u1ec1u di\u1ec5n ra trong m\u1ed9t lu\u1ed3ng duy nh\u1ea5t (single-threaded). V\u00ec v\u1eady, Event Loop gi\u00fap x\u1eed l\u00fd nhi\u1ec1u t\u00e1c v\u1ee5 m\u1ed9t c\u00e1ch \u0111\u1ed3ng th\u1eddi m\u00e0 kh\u00f4ng ch\u1ecdn lu\u1ed3ng kh\u00e1c.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-edcade7 elementor-widget elementor-widget-image\" data-id=\"edcade7\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img fetchpriority=\"high\" decoding=\"async\" width=\"800\" height=\"450\" src=\"https:\/\/fstack.io.vn\/blog\/wp-content\/uploads\/2024\/12\/Javascript-event-loop-1024x576.png\" class=\"attachment-large size-large wp-image-3044\" alt=\"Javascript-event-loop\" srcset=\"https:\/\/fstack.io.vn\/blog\/wp-content\/uploads\/2024\/12\/Javascript-event-loop-1024x576.png 1024w, https:\/\/fstack.io.vn\/blog\/wp-content\/uploads\/2024\/12\/Javascript-event-loop-300x169.png 300w, https:\/\/fstack.io.vn\/blog\/wp-content\/uploads\/2024\/12\/Javascript-event-loop-768x432.png 768w, https:\/\/fstack.io.vn\/blog\/wp-content\/uploads\/2024\/12\/Javascript-event-loop-1536x864.png 1536w, https:\/\/fstack.io.vn\/blog\/wp-content\/uploads\/2024\/12\/Javascript-event-loop.png 1920w\" sizes=\"(max-width: 800px) 100vw, 800px\" title=\"\">\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-961203a elementor-widget elementor-widget-text-editor\" data-id=\"961203a\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Ngu\u1ed3n : frontendlead.com<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e78a777 elementor-widget elementor-widget-heading\" data-id=\"e78a777\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\"><span class=\"ez-toc-section\" id=\"2Cach_Event_Loop_hoat_dong\"><\/span><h2>2.C\u00e1ch Event Loop ho\u1ea1t \u0111\u1ed9ng<span><\/span><span class=\"ez-toc-section-end\"><\/span><\/h2><\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d4d9b6b elementor-widget elementor-widget-heading\" data-id=\"d4d9b6b\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h5 class=\"elementor-heading-title elementor-size-default\"><span class=\"ez-toc-section\" id=\"21_Call_Stack_Ngan_xep_loi_goi\"><\/span>2.1 Call Stack (Ng\u0103n x\u1ebfp l\u1eddi g\u1ecdi)<span class=\"ez-toc-section-end\"><\/span><\/h5>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5277456 elementor-widget elementor-widget-text-editor\" data-id=\"5277456\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p data-pm-slice=\"1 1 []\">Call Stack ch\u1ee9a danh s\u00e1ch c\u00e1c h\u00e0m \u0111ang ch\u1edd \u0111\u01b0\u1ee3c th\u1ef1c thi. Khi b\u1ea1n g\u1ecdi m\u1ed9t h\u00e0m, n\u00f3 s\u1ebd \u0111\u01b0\u1ee3c \u0111\u1ea9y v\u00e0o Call Stack. Khi h\u00e0m k\u1ebft th\u00fac, n\u00f3 s\u1ebd \u0111\u01b0\u1ee3c l\u1ea5y ra kh\u1ecfi Stack.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-924f06b elementor-widget elementor-widget-code-highlight\" data-id=\"924f06b\" data-element_type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-okaidia copy-to-clipboard \">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-javascript line-numbers\">\n\t\t\t\t<code readonly=\"true\" class=\"language-javascript\">\n\t\t\t\t\t<xmp>function sayHello() {\n  console.log('Hello!');\n}\n\nsayHello(); \/\/ \u0110\u1ea9y h\u00e0m sayHello() v\u00e0o Call Stack, th\u1ef1c thi, sau \u0111\u00f3 l\u1ea5y ra.<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-f1cfaff elementor-widget elementor-widget-heading\" data-id=\"f1cfaff\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h5 class=\"elementor-heading-title elementor-size-default\"><span class=\"ez-toc-section\" id=\"22_Web_APIs\"><\/span>2.2 Web APIs<span class=\"ez-toc-section-end\"><\/span><\/h5>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-02d151c elementor-widget elementor-widget-text-editor\" data-id=\"02d151c\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p data-pm-slice=\"1 1 []\">Trong m\u00f4i tr\u01b0\u1eddng tr\u00ecnh duy\u1ec7t, c\u00e1c h\u00e0m nh\u01b0 <code><b>setTimeout<\/b><\/code>, <code><b>fetch<\/b><\/code>, hay <b>DOM events<\/b> \u0111\u01b0\u1ee3c x\u1eed l\u00fd b\u1edfi Web APIs. N\u00f3 cung c\u1ea5p c\u00e1c c\u00f4ng c\u1ee5 \u0111\u1ec3 x\u1eed l\u00fd c\u00e1c t\u00e1c v\u1ee5 b\u1ea5t \u0111\u1ed3ng b\u1ed9.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-1f74627 elementor-widget elementor-widget-code-highlight\" data-id=\"1f74627\" data-element_type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-okaidia copy-to-clipboard \">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-javascript line-numbers\">\n\t\t\t\t<code readonly=\"true\" class=\"language-javascript\">\n\t\t\t\t\t<xmp>console.log('Start');\n\nsetTimeout(() => {\n  console.log('Timeout');\n}, 1000);\n\nconsole.log('End');<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-5349723 e-con-full e-flex e-con e-child\" data-id=\"5349723\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-b24f8e4 elementor-widget elementor-widget-text-editor\" data-id=\"b24f8e4\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Start<\/p><p>End<\/p><p>Timeout<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-164c5d4 elementor-widget elementor-widget-heading\" data-id=\"164c5d4\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h5 class=\"elementor-heading-title elementor-size-default\"><span class=\"ez-toc-section\" id=\"23_Task_Queue_Hang_doi_tac_vu\"><\/span><span>2.3 Task Queue (H\u00e0ng \u0111\u1ee3i t\u00e1c v\u1ee5)<\/span><span class=\"ez-toc-section-end\"><\/span><\/h5>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-297f2a9 elementor-widget elementor-widget-text-editor\" data-id=\"297f2a9\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p data-pm-slice=\"1 1 []\">Task Queue l\u00e0 n\u01a1i l\u01b0u tr\u1eef c\u00e1c t\u00e1c v\u1ee5 b\u1ea5t \u0111\u1ed3ng b\u1ed9 nh\u01b0 callback c\u1ee7a <code><b>setTimeout<\/b><\/code>, <code><b>setInterval<\/b><\/code>, ho\u1eb7c c\u00e1c s\u1ef1 ki\u1ec7n DOM. C\u00e1c t\u00e1c v\u1ee5 trong Task Queue s\u1ebd ch\u1edd cho \u0111\u1ebfn khi Call Stack tr\u1ed1ng tr\u01b0\u1edbc khi \u0111\u01b0\u1ee3c \u0111\u01b0a v\u00e0o th\u1ef1c thi.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7f8e8ad elementor-icon-list--layout-traditional elementor-list-item-link-full_width elementor-widget elementor-widget-icon-list\" data-id=\"7f8e8ad\" data-element_type=\"widget\" data-widget_type=\"icon-list.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<ul class=\"elementor-icon-list-items\">\n\t\t\t\t\t\t\t<li class=\"elementor-icon-list-item\">\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-icon\">\n\t\t\t\t\t\t\t<i aria-hidden=\"true\" class=\"fas fa-circle\"><\/i>\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-text\">Khi Call Stack tr\u1ed1ng, Event Loop s\u1ebd ki\u1ec3m tra Task Queue.<\/span>\n\t\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t<li class=\"elementor-icon-list-item\">\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-icon\">\n\t\t\t\t\t\t\t<i aria-hidden=\"true\" class=\"fas fa-circle\"><\/i>\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-text\">N\u1ebfu c\u00f3 t\u00e1c v\u1ee5 trong Task Queue, n\u00f3 s\u1ebd \u0111\u01b0\u1ee3c \u0111\u1ea9y v\u00e0o Call Stack \u0111\u1ec3 th\u1ef1c thi.<\/span>\n\t\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t<\/ul>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b5bb137 elementor-widget elementor-widget-text-editor\" data-id=\"b5bb137\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p data-pm-slice=\"1 1 []\">V\u00ed d\u1ee5:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b979017 elementor-widget elementor-widget-code-highlight\" data-id=\"b979017\" data-element_type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-okaidia copy-to-clipboard \">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-javascript line-numbers\">\n\t\t\t\t<code readonly=\"true\" class=\"language-javascript\">\n\t\t\t\t\t<xmp>console.log('Start');\n\nsetTimeout(() => {\n  console.log('Task from Task Queue');\n}, 0);\n\nconsole.log('End');<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9170e4c elementor-widget elementor-widget-text-editor\" data-id=\"9170e4c\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p data-pm-slice=\"1 1 []\">K\u1ebft qu\u1ea3:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-24be3d9 e-con-full e-flex e-con e-child\" data-id=\"24be3d9\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-4a9034d elementor-widget elementor-widget-text-editor\" data-id=\"4a9034d\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Start<br \/>End<br \/>Task from Task Queue<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-2c385cf elementor-widget elementor-widget-heading\" data-id=\"2c385cf\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h5 class=\"elementor-heading-title elementor-size-default\"><span class=\"ez-toc-section\" id=\"24_Microtask_Queue_Hang_doi_vi_tac_vu\"><\/span>2.4 <strong>Microtask Queue (H\u00e0ng \u0111\u1ee3i vi t\u00e1c v\u1ee5)<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h5>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-0c42b9c elementor-widget elementor-widget-text-editor\" data-id=\"0c42b9c\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p data-pm-slice=\"1 1 []\">Microtask Queue ch\u1ee9a c\u00e1c t\u00e1c v\u1ee5 c\u00f3 \u0111\u1ed9 \u01b0u ti\u00ean cao h\u01a1n Task Queue, v\u00ed d\u1ee5 nh\u01b0 <b><code>Promise<\/code> <\/b>ho\u1eb7c <code><b>MutationObserver<\/b><\/code>. C\u00e1c t\u00e1c v\u1ee5 trong Microtask Queue s\u1ebd \u0111\u01b0\u1ee3c th\u1ef1c thi ngay sau khi Call Stack tr\u1ed1ng, tr\u01b0\u1edbc khi \u0111\u1ebfn c\u00e1c t\u00e1c v\u1ee5 trong Task Queue.<\/p><p data-pm-slice=\"1 1 []\">V\u00ed d\u1ee5:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-964db66 elementor-widget elementor-widget-code-highlight\" data-id=\"964db66\" data-element_type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-okaidia copy-to-clipboard \">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-javascript line-numbers\">\n\t\t\t\t<code readonly=\"true\" class=\"language-javascript\">\n\t\t\t\t\t<xmp>console.log('Start');\n\nPromise.resolve().then(() => {\n  console.log('Microtask');\n});\n\nsetTimeout(() => {\n  console.log('Macrotask');\n}, 0);\n\nconsole.log('End');<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-dbcf95d elementor-widget elementor-widget-text-editor\" data-id=\"dbcf95d\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p data-pm-slice=\"1 1 []\">K\u1ebft qu\u1ea3:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-c0eef0d e-con-full e-flex e-con e-child\" data-id=\"c0eef0d\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-647890f elementor-widget elementor-widget-text-editor\" data-id=\"647890f\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Start<br \/>End<br \/>Microtask<br \/>Macrotask<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5dd96ed elementor-widget elementor-widget-heading\" data-id=\"5dd96ed\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h5 class=\"elementor-heading-title elementor-size-default\"><span class=\"ez-toc-section\" id=\"25_Event_Loop\"><\/span>2.5 Event Loop<span class=\"ez-toc-section-end\"><\/span><\/h5>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-0facd24 elementor-widget elementor-widget-text-editor\" data-id=\"0facd24\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p data-pm-slice=\"1 1 []\">Event Loop l\u00e0 c\u01a1 ch\u1ebf ki\u1ec3m tra li\u00ean t\u1ee5c:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-da68e2a elementor-icon-list--layout-traditional elementor-list-item-link-full_width elementor-widget elementor-widget-icon-list\" data-id=\"da68e2a\" data-element_type=\"widget\" data-widget_type=\"icon-list.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<ul class=\"elementor-icon-list-items\">\n\t\t\t\t\t\t\t<li class=\"elementor-icon-list-item\">\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-icon\">\n\t\t\t\t\t\t\t<i aria-hidden=\"true\" class=\"fas fa-circle\"><\/i>\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-text\">N\u1ebfu Call Stack tr\u1ed1ng, Event Loop s\u1ebd l\u1ea5y c\u00e1c t\u00e1c v\u1ee5 t\u1eeb Microtask Queue tr\u01b0\u1edbc, sau \u0111\u00f3 m\u1edbi \u0111\u1ebfn Task Queue.<\/span>\n\t\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t<li class=\"elementor-icon-list-item\">\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-icon\">\n\t\t\t\t\t\t\t<i aria-hidden=\"true\" class=\"fas fa-circle\"><\/i>\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-text\">Qu\u00e1 tr\u00ecnh n\u00e0y l\u1eb7p l\u1ea1i cho \u0111\u1ebfn khi t\u1ea5t c\u1ea3 t\u00e1c v\u1ee5 \u0111\u01b0\u1ee3c x\u1eed l\u00fd.<\/span>\n\t\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t<\/ul>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-f80fa68 elementor-widget elementor-widget-heading\" data-id=\"f80fa68\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\"><span class=\"ez-toc-section\" id=\"3Microtask_vs_Macrotask\"><\/span>3.Microtask vs Macrotask<span class=\"ez-toc-section-end\"><\/span><\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-2559686 elementor-widget elementor-widget-heading\" data-id=\"2559686\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h5 class=\"elementor-heading-title elementor-size-default\"><span class=\"ez-toc-section\" id=\"31_Microtask\"><\/span>3.1 Microtask<span class=\"ez-toc-section-end\"><\/span><\/h5>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-93124dd elementor-icon-list--layout-traditional elementor-list-item-link-full_width elementor-widget elementor-widget-icon-list\" data-id=\"93124dd\" data-element_type=\"widget\" data-widget_type=\"icon-list.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<ul class=\"elementor-icon-list-items\">\n\t\t\t\t\t\t\t<li class=\"elementor-icon-list-item\">\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-icon\">\n\t\t\t\t\t\t\t<i aria-hidden=\"true\" class=\"fas fa-circle\"><\/i>\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-text\"><b>\u0110\u1ecbnh ngh\u0129a<\/b>: C\u00e1c t\u00e1c v\u1ee5 \u01b0u ti\u00ean cao, \u0111\u01b0\u1ee3c th\u1ef1c thi ngay sau khi Call Stack tr\u1ed1ng.<\/span>\n\t\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t<li class=\"elementor-icon-list-item\">\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-icon\">\n\t\t\t\t\t\t\t<i aria-hidden=\"true\" class=\"fas fa-circle\"><\/i>\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-text\"><b>V\u00ed d\u1ee5<\/b>: Promise.then, queueMicrotask, MutationObserver.<\/span>\n\t\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t<li class=\"elementor-icon-list-item\">\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-icon\">\n\t\t\t\t\t\t\t<i aria-hidden=\"true\" class=\"fas fa-circle\"><\/i>\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-text\"><b>Th\u1ee9 t\u1ef1 th\u1ef1c thi<\/b>: \u0110\u01b0\u1ee3c th\u1ef1c hi\u1ec7n tr\u01b0\u1edbc Macrotask.<\/span>\n\t\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t<\/ul>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ff05587 elementor-widget elementor-widget-heading\" data-id=\"ff05587\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h5 class=\"elementor-heading-title elementor-size-default\"><span class=\"ez-toc-section\" id=\"32_Macrotask\"><\/span>3.2 Macrotask<span class=\"ez-toc-section-end\"><\/span><\/h5>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-fdbd046 elementor-icon-list--layout-traditional elementor-list-item-link-full_width elementor-widget elementor-widget-icon-list\" data-id=\"fdbd046\" data-element_type=\"widget\" data-widget_type=\"icon-list.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<ul class=\"elementor-icon-list-items\">\n\t\t\t\t\t\t\t<li class=\"elementor-icon-list-item\">\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-icon\">\n\t\t\t\t\t\t\t<i aria-hidden=\"true\" class=\"fas fa-circle\"><\/i>\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-text\"><b>\u0110\u1ecbnh ngh\u0129a<\/b>: C\u00e1c t\u00e1c v\u1ee5 c\u00f3 \u0111\u1ed9 \u01b0u ti\u00ean th\u1ea5p h\u01a1n, th\u01b0\u1eddng \u0111\u01b0\u1ee3c \u0111\u01b0a v\u00e0o Task Queue.<\/span>\n\t\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t<li class=\"elementor-icon-list-item\">\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-icon\">\n\t\t\t\t\t\t\t<i aria-hidden=\"true\" class=\"fas fa-circle\"><\/i>\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-text\"><b>V\u00ed d\u1ee5<\/b>: setTimeout, setInterval, I\/O events.<\/span>\n\t\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t<li class=\"elementor-icon-list-item\">\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-icon\">\n\t\t\t\t\t\t\t<i aria-hidden=\"true\" class=\"fas fa-circle\"><\/i>\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-text\"><b>Th\u1ee9 t\u1ef1 th\u1ef1c thi<\/b>: \u0110\u01b0\u1ee3c th\u1ef1c hi\u1ec7n sau khi t\u1ea5t c\u1ea3 Microtask \u0111\u00e3 ho\u00e0n t\u1ea5t.<\/span>\n\t\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t<\/ul>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5671429 elementor-widget elementor-widget-text-editor\" data-id=\"5671429\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p data-pm-slice=\"1 1 []\">V\u00ed d\u1ee5:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-78181db elementor-widget elementor-widget-code-highlight\" data-id=\"78181db\" data-element_type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-okaidia copy-to-clipboard \">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-javascript line-numbers\">\n\t\t\t\t<code readonly=\"true\" class=\"language-javascript\">\n\t\t\t\t\t<xmp>console.log('Start');\n\nsetTimeout(() => {\n  console.log('Macrotask');\n}, 0);\n\nPromise.resolve().then(() => {\n  console.log('Microtask');\n});\n\nconsole.log('End');<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-726446b elementor-widget elementor-widget-text-editor\" data-id=\"726446b\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p data-pm-slice=\"1 1 []\">K\u1ebft qu\u1ea3:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-c47aca5 e-con-full e-flex e-con e-child\" data-id=\"c47aca5\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-d76f33e elementor-widget elementor-widget-text-editor\" data-id=\"d76f33e\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p data-pm-slice=\"1 1 []\">Start<br \/>End<br \/>Microtask<br \/>Macrotask<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8f27c59 elementor-widget elementor-widget-heading\" data-id=\"8f27c59\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\"><span class=\"ez-toc-section\" id=\"4Ung_dung_thuc_te\"><\/span>4.\u1ee8ng d\u1ee5ng th\u1ef1c t\u1ebf<span class=\"ez-toc-section-end\"><\/span><\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-cf0035c elementor-widget elementor-widget-text-editor\" data-id=\"cf0035c\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p data-pm-slice=\"1 1 []\">Hi\u1ec3u c\u00e1ch ho\u1ea1t \u0111\u1ed9ng c\u1ee7a Event Loop l\u00e0 r\u1ea5t quan tr\u1ecdng \u0111\u1ec3 tr\u00e1nh c\u00e1c l\u1ed7i kh\u00f4ng mong mu\u1ed1n trong \u1ee9ng d\u1ee5ng c\u1ee7a b\u1ea1n. D\u01b0\u1edbi \u0111\u00e2y l\u00e0 m\u1ed9t v\u00e0i t\u00ecnh hu\u1ed1ng ph\u1ed5 bi\u1ebfn:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-bbd2e02 elementor-widget elementor-widget-heading\" data-id=\"bbd2e02\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h5 class=\"elementor-heading-title elementor-size-default\"><span class=\"ez-toc-section\" id=\"41_Toi_uu_hieu_suat\"><\/span>4.1. T\u1ed1i \u01b0u hi\u1ec7u su\u1ea5t<span class=\"ez-toc-section-end\"><\/span><\/h5>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3551007 elementor-widget elementor-widget-text-editor\" data-id=\"3551007\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p data-pm-slice=\"1 1 []\">Khi th\u1ef1c hi\u1ec7n c\u00e1c t\u00e1c v\u1ee5 n\u1eb7ng trong JavaScript, b\u1ea1n c\u00f3 th\u1ec3 chia nh\u1ecf ch\u00fang \u0111\u1ec3 tr\u00e1nh vi\u1ec7c ch\u1eb7n Call Stack, gi\u00fap giao di\u1ec7n kh\u00f4ng b\u1ecb &#8220;\u0111\u01a1&#8221;:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-57c85f1 elementor-widget elementor-widget-code-highlight\" data-id=\"57c85f1\" data-element_type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-okaidia copy-to-clipboard \">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-javascript line-numbers\">\n\t\t\t\t<code readonly=\"true\" class=\"language-javascript\">\n\t\t\t\t\t<xmp>const heavyTask = () => {\n  for (let i = 0; i < 1e6; i++) {\n    \/\/ M\u1ed9t t\u00e1c v\u1ee5 n\u1eb7ng\n  }\n  console.log('Task Done');\n};\n\nsetTimeout(() => console.log('Timeout'), 0);\n\nheavyTask();<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5ed3b32 elementor-widget elementor-widget-text-editor\" data-id=\"5ed3b32\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>K\u1ebft qu\u1ea3:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-3d06581 e-con-full e-flex e-con e-child\" data-id=\"3d06581\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-ffb97bc elementor-widget elementor-widget-text-editor\" data-id=\"ffb97bc\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Task Done<br \/>Timeout<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d6385ac elementor-widget elementor-widget-text-editor\" data-id=\"d6385ac\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p data-pm-slice=\"1 1 []\">B\u1eb1ng c\u00e1ch s\u1eed d\u1ee5ng <code>setTimeout<\/code> ho\u1eb7c <code>Promise<\/code>, b\u1ea1n c\u00f3 th\u1ec3 c\u1ea3i thi\u1ec7n hi\u1ec7u su\u1ea5t b\u1eb1ng c\u00e1ch chia nh\u1ecf t\u00e1c v\u1ee5:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-54c3c13 elementor-widget elementor-widget-code-highlight\" data-id=\"54c3c13\" data-element_type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-okaidia copy-to-clipboard \">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-javascript line-numbers\">\n\t\t\t\t<code readonly=\"true\" class=\"language-javascript\">\n\t\t\t\t\t<xmp>const heavyTask = () => {\n  for (let i = 0; i < 1e6; i++) {\n    if (i % 1e5 === 0) {\n      console.log(i);\n    }\n  }\n};\n\nsetTimeout(() => console.log('Timeout'), 0);\n\nPromise.resolve().then(() => heavyTask());<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4683daf elementor-widget elementor-widget-heading\" data-id=\"4683daf\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h5 class=\"elementor-heading-title elementor-size-default\"><span class=\"ez-toc-section\" id=\"42_Tranh_cac_loi_kho_hieu\"><\/span>4.2. Tr\u00e1nh c\u00e1c l\u1ed7i kh\u00f3 hi\u1ec3u<span class=\"ez-toc-section-end\"><\/span><\/h5>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d9a5375 elementor-widget elementor-widget-text-editor\" data-id=\"d9a5375\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p data-pm-slice=\"1 1 []\">M\u1ed9t s\u1ed1 l\u1ed7i c\u00f3 th\u1ec3 x\u1ea3y ra khi b\u1ea1n kh\u00f4ng hi\u1ec3u r\u00f5 th\u1ee9 t\u1ef1 th\u1ef1c thi:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7fa44ab elementor-widget elementor-widget-code-highlight\" data-id=\"7fa44ab\" data-element_type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-okaidia copy-to-clipboard \">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-javascript line-numbers\">\n\t\t\t\t<code readonly=\"true\" class=\"language-javascript\">\n\t\t\t\t\t<xmp>setTimeout(() => console.log('setTimeout'), 0);\nPromise.resolve().then(() => console.log('Promise')); \nconsole.log('Sync code');<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-42d4422 elementor-widget elementor-widget-text-editor\" data-id=\"42d4422\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p data-pm-slice=\"1 1 []\">K\u1ebft qu\u1ea3:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-3a43624 e-con-full e-flex e-con e-child\" data-id=\"3a43624\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-b6fad16 elementor-widget elementor-widget-text-editor\" data-id=\"b6fad16\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Sync code<br \/>Promise<br \/>setTimeout<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-6ccc37f elementor-widget elementor-widget-heading\" data-id=\"6ccc37f\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\"><span class=\"ez-toc-section\" id=\"5Ket_luan\"><\/span>5.K\u1ebft lu\u1eadn<span class=\"ez-toc-section-end\"><\/span><\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ac0cc93 elementor-widget elementor-widget-text-editor\" data-id=\"ac0cc93\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p data-pm-slice=\"1 1 []\">Event Loop l\u00e0 m\u1ed9t trong nh\u1eefng kh\u00e1i ni\u1ec7m c\u1ed1t l\u00f5i m\u00e0 m\u1ecdi l\u1eadp tr\u00ecnh vi\u00ean JavaScript n\u00ean hi\u1ec3u r\u00f5. Vi\u1ec7c n\u1eafm v\u1eefng c\u00e1ch Event Loop ho\u1ea1t \u0111\u1ed9ng kh\u00f4ng ch\u1ec9 gi\u00fap b\u1ea1n vi\u1ebft code hi\u1ec7u qu\u1ea3 h\u01a1n m\u00e0 c\u00f2n tr\u00e1nh \u0111\u01b0\u1ee3c c\u00e1c l\u1ed7i ph\u1ee9c t\u1ea1p khi l\u00e0m vi\u1ec7c v\u1edbi c\u00e1c t\u00e1c v\u1ee5 b\u1ea5t \u0111\u1ed3ng b\u1ed9. H\u00e3y d\u00e0nh th\u1eddi gian th\u1ef1c h\u00e0nh v\u00e0 ki\u1ec3m tra k\u1ebft qu\u1ea3 \u0111\u1ec3 hi\u1ec3u s\u00e2u h\u01a1n v\u1ec1 c\u01a1 ch\u1ebf n\u00e0y.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3e37832 elementor-widget elementor-widget-heading\" data-id=\"3e37832\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<p class=\"elementor-heading-title elementor-size-default\"><a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/JavaScript\/Event_loop\" rel=\"nofollow noopener\" target=\"_blank\">Click  \u0111\u1ec3 t\u00ecm hi\u1ec3u chi ti\u1ebft. <\/a><\/p>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-362a052 elementor-widget elementor-widget-text-editor\" data-id=\"362a052\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>\u1ede tr\u00ean l\u00e0 1 s\u1ed1 chia s\u1ebb v\u1ec1 event loop trong javascript c\u1ee7a m\u00ecnh, v\u00ec \u0111\u00e2y \u0111a ph\u1ea7n l\u00e0 ki\u1ebfn th\u1ee9c m\u00ecnh t\u1ef1 h\u1ecdc n\u00ean c\u00f3 th\u1ec3 b\u00e0i vi\u1ebft n\u00e0y c\u00f3 th\u1ec3 c\u00f3 nhi\u1ec1u ch\u1ed7 ch\u01b0a ch\u00ednh x\u00e1c v\u00e0 thi\u1ebfu s\u00f3t, mong m\u1ecdi ng\u01b0\u1eddi g\u00f3p \u00fd \u1edf d\u01b0\u1edbi ph\u1ea7n b\u00ecnh lu\u1eadn \u0111\u1ec3 b\u00e0i vi\u1ebft th\u00eam ho\u00e0n ch\u1ec9nh v\u00e0 x\u00e2y d\u1ef1ng m\u1ed9t c\u1ed9ng \u0111\u1ed3ng n\u01a1i m\u1ecdi ng\u01b0\u1eddi c\u00f3 th\u1ec3 chia s\u1ebb kinh nghi\u1ec7m\u00a0<a href=\"https:\/\/fstack.io.vn\/lap-trinh-la-gi-mot-so-dac-diem-cua-lap-trinh-ma-ban-nen-biet\/\">l\u1eadp tr\u00ecnh<\/a>\u00a0cho nhau\u00a0\ud83d\ude18.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Khi b\u1ea1n vi\u1ebft m\u1ed9t \u1ee9ng d\u1ee5ng JavaScript, \u0111\u1eb7c bi\u1ec7t l\u00e0 trong tr\u00ecnh duy\u1ec7t ho\u1eb7c Node.js, vi\u1ec7c x\u1eed l\u00fd b\u1ea5t \u0111\u1ed3ng b\u1ed9 l\u00e0 m\u1ed9t th\u00e1ch th\u1ee9c l\u1edbn. Event Loop ch\u00ednh l\u00e0 tr\u00e1i tim c\u1ee7a c\u00e1ch JavaScript x\u1eed l\u00fd b\u1ea5t \u0111\u1ed3ng b\u1ed9, gi\u00fap b\u1ea1n hi\u1ec3u \u0111\u01b0\u1ee3c t\u1ea1i sao ng\u00f4n ng\u1eef n\u00e0y c\u00f3 th\u1ec3 ho\u1ea1t \u0111\u1ed9ng \u0111\u1ed3ng th\u1eddi [&hellip;]<\/p>\n","protected":false},"author":4,"featured_media":3044,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[73],"tags":[84],"class_list":["post-3043","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-javascript","tag-event-loop"],"acf":[],"jetpack_featured_media_url":"https:\/\/fstack.io.vn\/blog\/wp-content\/uploads\/2024\/12\/Javascript-event-loop.png","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/fstack.io.vn\/blog\/wp-json\/wp\/v2\/posts\/3043","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fstack.io.vn\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fstack.io.vn\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fstack.io.vn\/blog\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/fstack.io.vn\/blog\/wp-json\/wp\/v2\/comments?post=3043"}],"version-history":[{"count":10,"href":"https:\/\/fstack.io.vn\/blog\/wp-json\/wp\/v2\/posts\/3043\/revisions"}],"predecessor-version":[{"id":3059,"href":"https:\/\/fstack.io.vn\/blog\/wp-json\/wp\/v2\/posts\/3043\/revisions\/3059"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/fstack.io.vn\/blog\/wp-json\/wp\/v2\/media\/3044"}],"wp:attachment":[{"href":"https:\/\/fstack.io.vn\/blog\/wp-json\/wp\/v2\/media?parent=3043"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fstack.io.vn\/blog\/wp-json\/wp\/v2\/categories?post=3043"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fstack.io.vn\/blog\/wp-json\/wp\/v2\/tags?post=3043"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}