[{"data":1,"prerenderedAt":801},["ShallowReactive",2],{"i-lucide:chevron-down":3,"i-lucide:search":8,"i-lucide:sun":10,"i-lucide:moon":12,"i-lucide:arrow-right":14,"i-lucide:menu":16,"i-lucide:panel-left":18,"i-lucide:mail":20,"i-simple-icons:x":22,"i-simple-icons:linkedin":24,"i-simple-icons:dribbble":27,"i-simple-icons:github":29,"sidebar-course-\u002Flearn\u002Fbn\u002Fcourses\u002Fevent-loop":31,"learn-topic-\u002Flearn\u002Fbn\u002Fcourses\u002Fevent-loop":72,"prereq-":87,"sidebar-quiz-\u002Flearn\u002Fbn\u002Fcourses\u002Fevent-loop":88,"lessons-\u002Flearn\u002Fbn\u002Fcourses\u002Fevent-loop":89,"i-lucide:repeat":695,"i-lucide:circle-check-big":697,"i-lucide:printer":699,"i-lucide:graduation-cap":701,"i-lucide:book-marked":703,"i-lucide:notebook-pen":705,"learn-quiz-\u002Flearn\u002Fbn\u002Fcourses\u002Fevent-loop":707,"i-lucide:chevron-right":785,"i-simple-icons:javascript":787,"i-lucide:clock":789,"i-lucide:calendar":791,"i-lucide:link":793,"i-lucide:scroll-text":795,"i-lucide:book-open":797,"i-lucide:lock-open":799},{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":7},0,24,false,"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"m6 9l6 6l6-6\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":9},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"m21 21l-4.34-4.34\"\u002F>\u003Ccircle cx=\"11\" cy=\"11\" r=\"8\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":11},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Ccircle cx=\"12\" cy=\"12\" r=\"4\"\u002F>\u003Cpath d=\"M12 2v2m0 16v2M4.93 4.93l1.41 1.41m11.32 11.32l1.41 1.41M2 12h2m16 0h2M6.34 17.66l-1.41 1.41M19.07 4.93l-1.41 1.41\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":13},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":15},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M5 12h14m-7-7l7 7l-7 7\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":17},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M4 5h16M4 12h16M4 19h16\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":19},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Crect width=\"18\" height=\"18\" x=\"3\" y=\"3\" rx=\"2\"\u002F>\u003Cpath d=\"M9 3v18\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":21},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"m22 7l-8.991 5.727a2 2 0 0 1-2.009 0L2 7\"\u002F>\u003Crect width=\"20\" height=\"16\" x=\"2\" y=\"4\" rx=\"2\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":23},"\u003Cpath fill=\"currentColor\" d=\"M14.234 10.162L22.977 0h-2.072l-7.591 8.824L7.251 0H.258l9.168 13.343L.258 24H2.33l8.016-9.318L16.749 24h6.993zm-2.837 3.299l-.929-1.329L3.076 1.56h3.182l5.965 8.532l.929 1.329l7.754 11.09h-3.182z\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":25,"hidden":26},"\u003Cpath fill=\"currentColor\" d=\"M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037c-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85c3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433a2.06 2.06 0 0 1-2.063-2.065a2.064 2.064 0 1 1 2.063 2.065m1.782 13.019H3.555V9h3.564zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0z\"\u002F>",true,{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":28},"\u003Cpath fill=\"currentColor\" d=\"M12 24C5.385 24 0 18.615 0 12S5.385 0 12 0s12 5.385 12 12s-5.385 12-12 12m10.12-10.358c-.35-.11-3.17-.953-6.384-.438c1.34 3.684 1.887 6.684 1.992 7.308a10.28 10.28 0 0 0 4.395-6.87zm-6.115 7.808c-.153-.9-.75-4.032-2.19-7.77l-.066.02c-5.79 2.015-7.86 6.025-8.04 6.4a10.16 10.16 0 0 0 6.29 2.166c1.42 0 2.77-.29 4-.814zm-11.62-2.58c.232-.4 3.045-5.055 8.332-6.765q.202-.067.405-.12q-.392-.879-.832-1.74C7.17 11.775 2.206 11.71 1.756 11.7l-.004.312c0 2.633.998 5.037 2.634 6.855zm-2.42-8.955c.46.008 4.683.026 9.477-1.248a66 66 0 0 0-3.8-5.928a10.28 10.28 0 0 0-5.676 7.17zM9.6 2.052c.282.38 2.145 2.914 3.822 6c3.645-1.365 5.19-3.44 5.373-3.702A10.2 10.2 0 0 0 12 1.764c-.825 0-1.63.1-2.4.285zm10.335 3.483c-.218.29-1.935 2.493-5.724 4.04c.24.49.47.985.68 1.486c.08.18.15.36.22.53c3.41-.43 6.8.26 7.14.33c-.02-2.42-.88-4.64-2.31-6.38z\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":30},"\u003Cpath fill=\"currentColor\" d=\"M12 .297c-6.63 0-12 5.373-12 12c0 5.303 3.438 9.8 8.205 11.385c.6.113.82-.258.82-.577c0-.285-.01-1.04-.015-2.04c-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729c1.205.084 1.838 1.236 1.838 1.236c1.07 1.835 2.809 1.305 3.495.998c.108-.776.417-1.305.76-1.605c-2.665-.3-5.466-1.332-5.466-5.93c0-1.31.465-2.38 1.235-3.22c-.135-.303-.54-1.523.105-3.176c0 0 1.005-.322 3.3 1.23c.96-.267 1.98-.399 3-.405c1.02.006 2.04.138 3 .405c2.28-1.552 3.285-1.23 3.285-1.23c.645 1.653.24 2.873.12 3.176c.765.84 1.23 1.91 1.23 3.22c0 4.61-2.805 5.625-5.475 5.92c.42.36.81 1.096.81 2.22c0 1.606-.015 2.896-.015 3.286c0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12\"\u002F>",{"id":32,"title":33,"access":34,"body":35,"description":49,"draft":6,"estimatedMinutes":50,"extension":51,"featured":26,"icon":52,"lang":53,"level":54,"meta":55,"navigation":26,"order":56,"path":57,"prerequisites":58,"resources":59,"seo":60,"sku":61,"stem":62,"subjects":63,"summary":65,"tags":66,"updated":70,"__hash__":71},"courses\u002Flearn\u002Fbn\u002Fcourses\u002Fevent-loop\u002Findex.md","ইভেন্ট লুপ","free",{"type":36,"value":37,"toc":45},"minimark",[38,42],[39,40,41],"p",{},"এই টপিকে দুটো লেখা আছে। প্রথমটা কল স্ট্যাক নিয়ে — কোড চলার সময় ঠিক কী হয়।\nদ্বিতীয়টা কিউ নিয়ে — কাজ শেষ হওয়ার পর কলব্যাক কোথায় অপেক্ষা করে, আর কোন\nকিউ আগে সুযোগ পায়।",[39,43,44],{},"ক্রম মেনে পড়লে ভালো, কারণ দ্বিতীয়টা প্রথমটার উপর দাঁড়িয়ে আছে।",{"title":46,"searchDepth":47,"depth":47,"links":48},"",3,[],"জাভাস্ক্রিপ্ট এক থ্রেডে চলেও কীভাবে একসাথে অনেক কাজ সামলায়।",20,"md","lucide:repeat","bn","beginner",{},1,"\u002Flearn\u002Fbn\u002Fcourses\u002Fevent-loop",[],[],{"title":33,"description":49},null,"learn\u002Fbn\u002Fcourses\u002Fevent-loop\u002Findex",[64],"javascript","জাভাস্ক্রিপ্টের একটাই কল স্ট্যাক — মানে এক সময়ে একটার বেশি কাজ চলতে পারে না।\nতবু নেটওয়ার্ক রিকোয়েস্ট, টাইমার আর ক্লিক একসাথে সামলানো যায়, কারণ ভারী\nকাজগুলো ভাষাটা নিজে করে না; ব্রাউজার করে। ব্রাউজার কাজ শেষ করে কলব্যাকটা একটা\nকিউতে রেখে দেয়, আর ইভেন্ট লুপ স্ট্যাক খালি হলে সেটা তুলে নেয়।\nএই একটা নিয়ম বুঝলে `setTimeout(fn, 0)`-এর দেরি, প্রমিজের আগে চলা, আর\n\"পেজ হ্যাং করে আছে\" — তিনটাই একই ব্যাখ্যায় মিলে যায়।\n",[67,68,69],"ইভেন্ট-লুপ","অ্যাসিঙ্ক","প্রমিজ","2026-08-06","6BoixVqlBPimn2bTW-mXZLz2hVlq88kHiVNkO_SLh9w",{"id":32,"title":33,"access":34,"body":73,"description":49,"draft":6,"estimatedMinutes":50,"extension":51,"featured":26,"icon":52,"lang":53,"level":54,"meta":81,"navigation":26,"order":56,"path":57,"prerequisites":82,"resources":83,"seo":84,"sku":61,"stem":62,"subjects":85,"summary":65,"tags":86,"updated":70,"__hash__":71},{"type":36,"value":74,"toc":79},[75,77],[39,76,41],{},[39,78,44],{},{"title":46,"searchDepth":47,"depth":47,"links":80},[],{},[],[],{"title":33,"description":49},[64],[67,68,69],[],{"course":57},[90,353],{"id":91,"title":92,"access":34,"body":93,"description":347,"extension":51,"lang":53,"meta":348,"navigation":26,"order":56,"partial":6,"path":349,"seo":350,"stem":351,"__hash__":352},"lessons\u002Flearn\u002Fbn\u002Fcourses\u002Fevent-loop\u002F01.call-stack.md","কল স্ট্যাক",{"type":36,"value":94,"toc":343},[95,99,102,208,229,234,237,240,303,306,312,316,327,330,339],[96,97,92],"h1",{"id":98},"কল-স্ট্যাক",[39,100,101],{},"জাভাস্ক্রিপ্ট যখন একটা ফাংশন ডাকে, সেটা একটা স্ট্যাকের উপরে বসে। ফাংশনটা শেষ\nহলে স্ট্যাক থেকে নেমে যায়। শেষেরটা আগে নামে — এটাই স্ট্যাক।",[103,104,108],"pre",{"className":105,"code":106,"language":107,"meta":46,"style":46},"language-js shiki shiki-themes github-dark-dimmed github-dark-dimmed","function ভেতরে() {\n  console.log('ভেতরের কাজ')\n}\n\nfunction বাইরে() {\n  ভেতরে()\n  console.log('বাইরের কাজ')\n}\n\nবাইরে()\n","js",[109,110,111,127,146,151,157,167,176,190,195,200],"code",{"__ignoreMap":46},[112,113,115,119,123],"span",{"class":114,"line":56},"line",[112,116,118],{"class":117},"sEYkB","function",[112,120,122],{"class":121},"s-wk_"," ভেতরে",[112,124,126],{"class":125},"sM9_K","() {\n",[112,128,130,133,136,139,143],{"class":114,"line":129},2,[112,131,132],{"class":125},"  console.",[112,134,135],{"class":121},"log",[112,137,138],{"class":125},"(",[112,140,142],{"class":141},"szYpP","'ভেতরের কাজ'",[112,144,145],{"class":125},")\n",[112,147,148],{"class":114,"line":47},[112,149,150],{"class":125},"}\n",[112,152,154],{"class":114,"line":153},4,[112,155,156],{"emptyLinePlaceholder":26},"\n",[112,158,160,162,165],{"class":114,"line":159},5,[112,161,118],{"class":117},[112,163,164],{"class":121}," বাইরে",[112,166,126],{"class":125},[112,168,170,173],{"class":114,"line":169},6,[112,171,172],{"class":121},"  ভেতরে",[112,174,175],{"class":125},"()\n",[112,177,179,181,183,185,188],{"class":114,"line":178},7,[112,180,132],{"class":125},[112,182,135],{"class":121},[112,184,138],{"class":125},[112,186,187],{"class":141},"'বাইরের কাজ'",[112,189,145],{"class":125},[112,191,193],{"class":114,"line":192},8,[112,194,150],{"class":125},[112,196,198],{"class":114,"line":197},9,[112,199,156],{"emptyLinePlaceholder":26},[112,201,203,206],{"class":114,"line":202},10,[112,204,205],{"class":121},"বাইরে",[112,207,175],{"class":125},[39,209,210,213,214,217,218,221,222,225,226,228],{},[109,211,212],{},"বাইরে()"," ডাকার পর স্ট্যাক দাঁড়ায় ",[109,215,216],{},"[বাইরে]",", তারপর ",[109,219,220],{},"[বাইরে, ভেতরে]","। ",[109,223,224],{},"ভেতরে","\nশেষ হলে নেমে যায়, ",[109,227,205],{}," তার পরের লাইনে যায়, তারপর সেও নামে।",[230,231,233],"h2",{"id":232},"স্ট্যাক-একটাই","স্ট্যাক একটাই",[39,235,236],{},"এটাই আসল কথা। ব্রাউজারে জাভাস্ক্রিপ্টের একটাই কল স্ট্যাক, মানে একটাই থ্রেড।\nএক সময়ে একটাই কাজ চলতে পারে।",[39,238,239],{},"তাই যদি একটা ফাংশন অনেকক্ষণ ধরে চলে, আর কিছুই চলতে পারে না — ক্লিক কাজ করে না,\nঅ্যানিমেশন থেমে যায়, স্ক্রল আটকে যায়:",[103,241,243],{"className":105,"code":242,"language":107,"meta":46,"style":46},"const শুরু = Date.now()\nwhile (Date.now() - শুরু \u003C 5000) {\n  \u002F\u002F পাঁচ সেকেন্ড ধরে স্ট্যাক দখল করে রাখা\n}\n",[109,244,245,265,293,299],{"__ignoreMap":46},[112,246,247,250,254,257,260,263],{"class":114,"line":56},[112,248,249],{"class":117},"const",[112,251,253],{"class":252},"sQdni"," শুরু",[112,255,256],{"class":117}," =",[112,258,259],{"class":125}," Date.",[112,261,262],{"class":121},"now",[112,264,175],{"class":125},[112,266,267,270,273,275,278,281,284,287,290],{"class":114,"line":129},[112,268,269],{"class":117},"while",[112,271,272],{"class":125}," (Date.",[112,274,262],{"class":121},[112,276,277],{"class":125},"() ",[112,279,280],{"class":117},"-",[112,282,283],{"class":125}," শুরু ",[112,285,286],{"class":117},"\u003C",[112,288,289],{"class":252}," 5000",[112,291,292],{"class":125},") {\n",[112,294,295],{"class":114,"line":47},[112,296,298],{"class":297},"s0RzX","  \u002F\u002F পাঁচ সেকেন্ড ধরে স্ট্যাক দখল করে রাখা\n",[112,300,301],{"class":114,"line":153},[112,302,150],{"class":125},[39,304,305],{},"এই পাঁচ সেকেন্ড পেজটা পুরোপুরি জমে থাকবে। \"পেজ হ্যাং করেছে\" বলতে সাধারণত\nএটাই বোঝায় — কোনো একটা কাজ স্ট্যাক ছাড়ছে না।",[307,308,309],"note",{},[39,310,311],{},"ব্রাউজার রেন্ডারিংও একই থ্রেডে হয়। তাই স্ট্যাক ব্যস্ত মানে শুধু আপনার কোড নয়,\nপর্দায় আঁকার কাজটাও থেমে থাকে।",[230,313,315],{"id":314},"তাহলে-অ্যাসিঙ্ক-কাজ-হয়-কীভাবে","তাহলে অ্যাসিঙ্ক কাজ হয় কীভাবে",[39,317,318,319,322,323,326],{},"এখানেই ভুল ধারণাটা তৈরি হয়। ",[109,320,321],{},"fetch()"," বা ",[109,324,325],{},"setTimeout()"," জাভাস্ক্রিপ্ট নিজে\nকরে না। এগুলো ব্রাউজারের দেওয়া সুবিধা, আর ব্রাউজারের নিজের আলাদা থ্রেড আছে।",[39,328,329],{},"জাভাস্ক্রিপ্ট শুধু বলে দেয় \"এই কাজটা করো, শেষ হলে এই ফাংশনটা ডেকো\" — তারপর\nসাথে সাথে পরের লাইনে চলে যায়। স্ট্যাক খালি থাকে।",[39,331,332,333,338],{},"কাজটা শেষ হলে ব্রাউজার সেই ফাংশনটা কোথায় রাখে, আর কখন সেটা চলার সুযোগ পায় —\nসেটাই ",[334,335,337],"a",{"href":336},"\u002Flearn\u002Fbn\u002Fjavascript\u002Fevent-loop\u002Fdocs\u002Ftask-queues","পরের লেখার"," বিষয়।",[340,341,342],"style",{},"html pre.shiki code .sEYkB, html code.shiki .sEYkB{--shiki-default:#F47067;--shiki-dark:#F47067}html pre.shiki code .s-wk_, html code.shiki .s-wk_{--shiki-default:#DCBDFB;--shiki-dark:#DCBDFB}html pre.shiki code .sM9_K, html code.shiki .sM9_K{--shiki-default:#ADBAC7;--shiki-dark:#ADBAC7}html pre.shiki code .szYpP, html code.shiki .szYpP{--shiki-default:#96D0FF;--shiki-dark:#96D0FF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sQdni, html code.shiki .sQdni{--shiki-default:#6CB6FF;--shiki-dark:#6CB6FF}html pre.shiki code .s0RzX, html code.shiki .s0RzX{--shiki-default:#768390;--shiki-dark:#768390}",{"title":46,"searchDepth":47,"depth":47,"links":344},[345,346],{"id":232,"depth":129,"text":233},{"id":314,"depth":129,"text":315},"এক থ্রেড, এক স্ট্যাক — আর এর ফলে কী কী হয়।",{},"\u002Flearn\u002Fbn\u002Fcourses\u002Fevent-loop\u002Fcall-stack",{"title":92,"description":347},"learn\u002Fbn\u002Fcourses\u002Fevent-loop\u002F01.call-stack","bBbpl-84LEbDnPJWxkorGp1Y31DKL64tqsCNK09L5O4",{"id":354,"title":355,"access":34,"body":356,"description":689,"extension":51,"lang":53,"meta":690,"navigation":26,"order":129,"partial":6,"path":691,"seo":692,"stem":693,"__hash__":694},"lessons\u002Flearn\u002Fbn\u002Fcourses\u002Fevent-loop\u002F02.task-queues.md","টাস্ক কিউ",{"type":36,"value":357,"toc":684},[358,361,364,367,373,377,380,438,446,551,567,584,593,597,600,641,648,657,661,681],[96,359,355],{"id":360},"টাস্ক-কিউ",[39,362,363],{},"ব্রাউজার কাজ শেষ করার পর কলব্যাকটা সরাসরি চালায় না। স্ট্যাক তখন ব্যস্ত থাকতে\nপারে। তাই কলব্যাকটা একটা কিউতে গিয়ে অপেক্ষা করে।",[39,365,366],{},"ইভেন্ট লুপের কাজ একটাই, আর সেটা খুব সহজ:",[368,369,370],"blockquote",{},[39,371,372],{},"স্ট্যাক খালি? তাহলে কিউ থেকে একটা কাজ তুলে স্ট্যাকে বসাও।",[230,374,376],{"id":375},"দুটো-কিউ-সমান-নয়","দুটো কিউ, সমান নয়",[39,378,379],{},"এখানেই বেশিরভাগ বিভ্রান্তি।",[381,382,383,399],"table",{},[384,385,386],"thead",{},[387,388,389,393,396],"tr",{},[390,391,392],"th",{},"কিউ",[390,394,395],{},"কারা যায়",[390,397,398],{},"অগ্রাধিকার",[400,401,402,421],"tbody",{},[387,403,404,408,418],{},[405,406,407],"td",{},"মাইক্রোটাস্ক",[405,409,410,411,414,415],{},"প্রমিজ, ",[109,412,413],{},"queueMicrotask",", ",[109,416,417],{},"MutationObserver",[405,419,420],{},"বেশি",[387,422,423,426,435],{},[405,424,425],{},"ম্যাক্রোটাস্ক",[405,427,428,414,431,434],{},[109,429,430],{},"setTimeout",[109,432,433],{},"setInterval",", ক্লিক, নেটওয়ার্ক ইভেন্ট",[405,436,437],{},"কম",[39,439,440,441,445],{},"স্ট্যাক খালি হলে ইভেন্ট লুপ ",[442,443,444],"strong",{},"পুরো মাইক্রোটাস্ক কিউ খালি করে",", তারপর একটা\nম্যাক্রোটাস্ক নেয়। একটা নয় — পুরোটা।",[103,447,449],{"className":105,"code":448,"language":107,"meta":46,"style":46},"console.log('১')\n\nsetTimeout(() => console.log('২'), 0)\n\nPromise.resolve().then(() => console.log('৩'))\n\nconsole.log('৪')\n",[109,450,451,465,469,497,501,534,538],{"__ignoreMap":46},[112,452,453,456,458,460,463],{"class":114,"line":56},[112,454,455],{"class":125},"console.",[112,457,135],{"class":121},[112,459,138],{"class":125},[112,461,462],{"class":141},"'১'",[112,464,145],{"class":125},[112,466,467],{"class":114,"line":129},[112,468,156],{"emptyLinePlaceholder":26},[112,470,471,473,476,479,482,484,486,489,492,495],{"class":114,"line":47},[112,472,430],{"class":121},[112,474,475],{"class":125},"(() ",[112,477,478],{"class":117},"=>",[112,480,481],{"class":125}," console.",[112,483,135],{"class":121},[112,485,138],{"class":125},[112,487,488],{"class":141},"'২'",[112,490,491],{"class":125},"), ",[112,493,494],{"class":252},"0",[112,496,145],{"class":125},[112,498,499],{"class":114,"line":153},[112,500,156],{"emptyLinePlaceholder":26},[112,502,503,506,509,512,515,518,520,522,524,526,528,531],{"class":114,"line":159},[112,504,505],{"class":252},"Promise",[112,507,508],{"class":125},".",[112,510,511],{"class":121},"resolve",[112,513,514],{"class":125},"().",[112,516,517],{"class":121},"then",[112,519,475],{"class":125},[112,521,478],{"class":117},[112,523,481],{"class":125},[112,525,135],{"class":121},[112,527,138],{"class":125},[112,529,530],{"class":141},"'৩'",[112,532,533],{"class":125},"))\n",[112,535,536],{"class":114,"line":169},[112,537,156],{"emptyLinePlaceholder":26},[112,539,540,542,544,546,549],{"class":114,"line":178},[112,541,455],{"class":125},[112,543,135],{"class":121},[112,545,138],{"class":125},[112,547,548],{"class":141},"'৪'",[112,550,145],{"class":125},[39,552,553,554,414,557,414,560,414,563,566],{},"আউটপুট: ",[109,555,556],{},"১",[109,558,559],{},"৪",[109,561,562],{},"৩",[109,564,565],{},"২","।",[39,568,569,571,572,574,575,577,578,580,581,583],{},[109,570,556],{}," আর ",[109,573,559],{}," সরাসরি চলে, কারণ ওরা স্ট্যাকেই আছে। তারপর স্ট্যাক খালি হয়।\n",[109,576,562],{}," মাইক্রোটাস্ক, তাই আগে। ",[109,579,565],{}," ম্যাক্রোটাস্ক, তাই শেষে — ",[109,582,494],{}," মিলিসেকেন্ড\nলেখা থাকা সত্ত্বেও।",[585,586,587],"tip",{},[39,588,589,592],{},[109,590,591],{},"setTimeout(fn, 0)"," মানে \"এখনই চালাও\" নয়। মানে \"কিউয়ের পেছনে দাঁড় করাও\"।\nসময়টা সর্বনিম্ন দেরি, নিশ্চিত দেরি নয়।",[230,594,596],{"id":595},"মাইক্রোটাস্ক-দিয়ে-পেজ-আটকে-দেওয়া","মাইক্রোটাস্ক দিয়ে পেজ আটকে দেওয়া",[39,598,599],{},"যেহেতু লুপ পুরো মাইক্রোটাস্ক কিউ খালি করে তবেই এগোয়, একটা মাইক্রোটাস্ক যদি\nনিজেই আরেকটা মাইক্রোটাস্ক যোগ করতে থাকে, কিউ কখনো খালি হয় না:",[103,601,603],{"className":105,"code":602,"language":107,"meta":46,"style":46},"function চিরকাল() {\n  Promise.resolve().then(চিরকাল)\n}\nচিরকাল()\n",[109,604,605,614,630,634],{"__ignoreMap":46},[112,606,607,609,612],{"class":114,"line":56},[112,608,118],{"class":117},[112,610,611],{"class":121}," চিরকাল",[112,613,126],{"class":125},[112,615,616,619,621,623,625,627],{"class":114,"line":129},[112,617,618],{"class":252},"  Promise",[112,620,508],{"class":125},[112,622,511],{"class":121},[112,624,514],{"class":125},[112,626,517],{"class":121},[112,628,629],{"class":125},"(চিরকাল)\n",[112,631,632],{"class":114,"line":47},[112,633,150],{"class":125},[112,635,636,639],{"class":114,"line":153},[112,637,638],{"class":121},"চিরকাল",[112,640,175],{"class":125},[39,642,643,644,647],{},"পেজ জমে যাবে। ",[109,645,646],{},"while (true)","-এর মতোই, কিন্তু দেখতে নিরীহ — কারণ কোডে কোনো\nলুপ নেই।",[649,650,651],"warning",{},[39,652,653,654,656],{},"এই ভুলটা বাস্তবে ঘটে রিকার্সিভ প্রমিজ চেইনে — যেখানে থামার শর্তটা কখনো\nসত্যি হয় না। ",[109,655,430],{}," দিয়ে একই জিনিস লিখলে পেজ বাঁচত, কারণ ম্যাক্রোটাস্কের\nমাঝে ব্রাউজার রেন্ডার করার সুযোগ পায়।",[230,658,660],{"id":659},"মনে-রাখার-মতো","মনে রাখার মতো",[662,663,664,668,671,678],"ul",{},[665,666,667],"li",{},"স্ট্যাক খালি না হলে কোনো কলব্যাক চলে না।",[665,669,670],{},"মাইক্রোটাস্ক সবসময় ম্যাক্রোটাস্কের আগে।",[665,672,673,674,677],{},"মাইক্রোটাস্ক কিউ ",[442,675,676],{},"পুরোটা"," খালি হয়, একটা করে নয়।",[665,679,680],{},"টাইমারের সময় মানে সর্বনিম্ন দেরি।",[340,682,683],{},"html pre.shiki code .sM9_K, html code.shiki .sM9_K{--shiki-default:#ADBAC7;--shiki-dark:#ADBAC7}html pre.shiki code .s-wk_, html code.shiki .s-wk_{--shiki-default:#DCBDFB;--shiki-dark:#DCBDFB}html pre.shiki code .szYpP, html code.shiki .szYpP{--shiki-default:#96D0FF;--shiki-dark:#96D0FF}html pre.shiki code .sEYkB, html code.shiki .sEYkB{--shiki-default:#F47067;--shiki-dark:#F47067}html pre.shiki code .sQdni, html code.shiki .sQdni{--shiki-default:#6CB6FF;--shiki-dark:#6CB6FF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":46,"searchDepth":47,"depth":47,"links":685},[686,687,688],{"id":375,"depth":129,"text":376},{"id":595,"depth":129,"text":596},{"id":659,"depth":129,"text":660},"ম্যাক্রোটাস্ক, মাইক্রোটাস্ক আর কোনটা আগে চলে।",{},"\u002Flearn\u002Fbn\u002Fcourses\u002Fevent-loop\u002Ftask-queues",{"title":355,"description":689},"learn\u002Fbn\u002Fcourses\u002Fevent-loop\u002F02.task-queues","9RU6CRf8BUDTOLqXJkwY2RnOFqCaUHLpBXRyoA9O8kM",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":696},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"m17 2l4 4l-4 4\"\u002F>\u003Cpath d=\"M3 11v-1a4 4 0 0 1 4-4h14M7 22l-4-4l4-4\"\u002F>\u003Cpath d=\"M21 13v1a4 4 0 0 1-4 4H3\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":698},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M21.801 10A10 10 0 1 1 17 3.335\"\u002F>\u003Cpath d=\"m9 11l3 3L22 4\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":700},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M6 18H4a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-2M6 9V3a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v6\"\u002F>\u003Crect width=\"12\" height=\"8\" x=\"6\" y=\"14\" rx=\"1\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":702},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M21.42 10.922a1 1 0 0 0-.019-1.838L12.83 5.18a2 2 0 0 0-1.66 0L2.6 9.08a1 1 0 0 0 0 1.832l8.57 3.908a2 2 0 0 0 1.66 0zM22 10v6\"\u002F>\u003Cpath d=\"M6 12.5V16a6 3 0 0 0 12 0v-3.5\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":704},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M10 2v8l3-3l3 3V2\"\u002F>\u003Cpath d=\"M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":706},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M13.4 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-7.4M2 6h4m-4 4h4m-4 4h4m-4 4h4\"\u002F>\u003Cpath d=\"M21.378 5.626a1 1 0 1 0-3.004-3.004l-5.01 5.012a2 2 0 0 0-.506.854l-.837 2.87a.5.5 0 0 0 .62.62l2.87-.837a2 2 0 0 0 .854-.506z\"\u002F>\u003C\u002Fg>",{"id":708,"title":33,"course":57,"description":709,"extension":710,"lang":53,"meta":711,"passingScore":712,"questions":713,"shuffle":26,"stem":783,"__hash__":784},"quizzes\u002Flearn\u002Fbn\u002Fcourses\u002Fevent-loop\u002Fquiz.yml","কল স্ট্যাক আর টাস্ক কিউ নিয়ে পাঁচটা প্রশ্ন।","yml",{},70,[714,730,743,759,771],{"id":715,"question":716,"type":717,"options":718,"correct":727,"explanation":728,"difficulty":729},"q1","জাভাস্ক্রিপ্টে একসাথে কয়টা কল স্ট্যাক থাকে?","single",[719,721,724],{"id":334,"text":720},"একটা",{"id":722,"text":723},"b","প্রতিটা ফাংশনের জন্য একটা",{"id":725,"text":726,"ততগুলো":61},"c","যতগুলো CPU কোর",[334],"একটাই স্ট্যাক, মানে একটাই থ্রেড — তাই এক সময়ে একটাই কাজ চলে।","easy",{"id":731,"question":732,"type":717,"options":733,"correct":740,"explanation":741,"difficulty":742},"q2","`setTimeout(fn, 0)` লিখলে `fn` কখন চলে?",[734,736,738],{"id":334,"text":735,"লাইনটা পড়ার সময়ই":61},"সাথে সাথে",{"id":722,"text":737,"ম্যাক্রোটাস্ক কিউ থেকে":61},"স্ট্যাক খালি হওয়ার পর",{"id":725,"text":739},"ঠিক ০ মিলিসেকেন্ড পরে",[722],"সময়টা সর্বনিম্ন দেরি, নিশ্চিত দেরি নয়। কলব্যাক ম্যাক্রোটাস্ক কিউতে অপেক্ষা করে যতক্ষণ না স্ট্যাক খালি হয়।","medium",{"id":744,"question":745,"type":746,"options":747,"correct":757,"explanation":758,"difficulty":742},"q3","নিচের কোনগুলো মাইক্রোটাস্ক কিউতে যায়?","multiple",[748,750,752,754],{"id":334,"text":749},"প্রমিজের `.then()` কলব্যাক",{"id":722,"text":751},"`setInterval` কলব্যাক",{"id":725,"text":753},"`queueMicrotask()` কলব্যাক",{"id":755,"text":756},"d","বাটনে ক্লিকের হ্যান্ডলার",[334,725],"প্রমিজ আর `queueMicrotask` মাইক্রোটাস্ক; টাইমার আর DOM ইভেন্ট ম্যাক্রোটাস্ক।",{"id":760,"question":761,"type":717,"options":762,"correct":768,"explanation":769,"difficulty":770},"q4","স্ট্যাক খালি হলে ইভেন্ট লুপ প্রথমে কী করে?",[763,765,766],{"id":334,"text":764},"একটা ম্যাক্রোটাস্ক নেয়",{"id":722,"text":444},{"id":725,"text":767,"তারপর একটা ম্যাক্রোটাস্ক":61},"একটা মাইক্রোটাস্ক নেয়",[722],"পুরো মাইক্রোটাস্ক কিউ খালি হয় তবেই একটা ম্যাক্রোটাস্ক নেওয়া হয়। এই কারণেই রিকার্সিভ প্রমিজ চেইন পেজ আটকে দিতে পারে।","hard",{"id":772,"question":773,"type":717,"options":774,"correct":781,"explanation":782,"difficulty":729},"q5","একটা ফাংশন পাঁচ সেকেন্ড ধরে সিঙ্ক্রোনাসভাবে চললে কী হয়?",[775,777,779],{"id":334,"text":776,"বাকি সব চলে":61},"শুধু ওই ফাংশনটা দেরি করে",{"id":722,"text":778,"অ্যানিমেশন আর রেন্ডারিং — সবই থেমে থাকে":61},"ক্লিক",{"id":725,"text":780},"ব্রাউজার সেটাকে আলাদা থ্রেডে সরিয়ে দেয়",[722],"রেন্ডারিংও একই থ্রেডে হয়, তাই স্ট্যাক দখল থাকলে পুরো পেজ জমে যায়।","learn\u002Fbn\u002Fcourses\u002Fevent-loop\u002Fquiz","qmac7HLkmWYOZH8An4qEEfxLXlXyH9FzgnGtRREhYL4",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":786},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"m9 18l6-6l-6-6\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":788},"\u003Cpath fill=\"currentColor\" d=\"M0 0h24v24H0zm22.034 18.276c-.175-1.095-.888-2.015-3.003-2.873c-.736-.345-1.554-.585-1.797-1.14c-.091-.33-.105-.51-.046-.705c.15-.646.915-.84 1.515-.66c.39.12.75.42.976.9c1.034-.676 1.034-.676 1.755-1.125c-.27-.42-.404-.601-.586-.78c-.63-.705-1.469-1.065-2.834-1.034l-.705.089c-.676.165-1.32.525-1.71 1.005c-1.14 1.291-.811 3.541.569 4.471c1.365 1.02 3.361 1.244 3.616 2.205c.24 1.17-.87 1.545-1.966 1.41c-.811-.18-1.26-.586-1.755-1.336l-1.83 1.051c.21.48.45.689.81 1.109c1.74 1.756 6.09 1.666 6.871-1.004c.029-.09.24-.705.074-1.65zm-8.983-7.245h-2.248c0 1.938-.009 3.864-.009 5.805c0 1.232.063 2.363-.138 2.711c-.33.689-1.18.601-1.566.48c-.396-.196-.597-.466-.83-.855c-.063-.105-.11-.196-.127-.196l-1.825 1.125c.305.63.75 1.172 1.324 1.517c.855.51 2.004.675 3.207.405c.783-.226 1.458-.691 1.811-1.411c.51-.93.402-2.07.397-3.346c.012-2.054 0-4.109 0-6.179z\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":790},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Ccircle cx=\"12\" cy=\"12\" r=\"10\"\u002F>\u003Cpath d=\"M12 6v6l4 2\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":792},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M8 2v3m8-3v3\"\u002F>\u003Crect width=\"18\" height=\"18\" x=\"3\" y=\"3\" rx=\"2\"\u002F>\u003Cpath d=\"M3 9h18\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":794},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71\"\u002F>\u003Cpath d=\"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":796},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M15 12h-5m5-4h-5m9 9V5a2 2 0 0 0-2-2H4\"\u002F>\u003Cpath d=\"M8 21h12a2 2 0 0 0 2-2v-1a1 1 0 0 0-1-1H11a1 1 0 0 0-1 1v1a2 2 0 1 1-4 0V5a2 2 0 1 0-4 0v2a1 1 0 0 0 1 1h3\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":798},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M12 5v16m8.001-2A2 2 0 0 0 22 17V5a2 2 0 0 0-1.999-2L16 3.002A5 5 0 0 0 12 5a5 5 0 0 0-4-2H4a2 2 0 0 0-2 2v12a2 2 0 0 0 1.999 2H8a5 5 0 0 1 4 2a5 5 0 0 1 4-2z\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":800},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Crect width=\"18\" height=\"11\" x=\"3\" y=\"11\" rx=\"2\" ry=\"2\"\u002F>\u003Cpath d=\"M7 11V7a5 5 0 0 1 9.9-1\"\u002F>\u003C\u002Fg>",1787597892163]