[{"data":1,"prerenderedAt":789},["ShallowReactive",2],{"sidebar-course-\u002Flearn\u002Fbn\u002Fcourses\u002Fevent-loop":3,"i-lucide:chevron-down":46,"i-lucide:search":50,"i-lucide:sun":52,"i-lucide:moon":54,"i-lucide:arrow-right":56,"i-lucide:menu":58,"i-lucide:panel-left":60,"i-lucide:mail":62,"i-simple-icons:x":64,"i-simple-icons:linkedin":66,"i-simple-icons:dribbble":68,"i-simple-icons:github":70,"i-lucide:arrow-up-right":72,"lessons-\u002Flearn\u002Fbn\u002Fcourses\u002Fevent-loop":74,"sidebar-quiz-\u002Flearn\u002Fbn\u002Fcourses\u002Fevent-loop":679,"i-lucide:repeat":680,"i-lucide:circle-check-big":682,"i-lucide:printer":684,"i-lucide:graduation-cap":686,"i-lucide:book-marked":688,"i-lucide:notebook-pen":690,"quiz-\u002Flearn\u002Fbn\u002Fcourses\u002Fevent-loop":692,"quiz-topic-\u002Flearn\u002Fbn\u002Fcourses\u002Fevent-loop":770,"i-lucide:chevron-right":785,"i-lucide:percent":787},{"id":4,"title":5,"access":6,"body":7,"description":21,"draft":22,"estimatedMinutes":23,"extension":24,"featured":25,"icon":26,"lang":27,"level":28,"meta":29,"navigation":25,"order":30,"path":31,"prerequisites":32,"resources":33,"seo":34,"sku":35,"stem":36,"subjects":37,"summary":39,"tags":40,"updated":44,"__hash__":45},"courses\u002Flearn\u002Fbn\u002Fcourses\u002Fevent-loop\u002Findex.md","ইভেন্ট লুপ","free",{"type":8,"value":9,"toc":17},"minimark",[10,14],[11,12,13],"p",{},"এই টপিকে দুটো লেখা আছে। প্রথমটা কল স্ট্যাক নিয়ে — কোড চলার সময় ঠিক কী হয়।\nদ্বিতীয়টা কিউ নিয়ে — কাজ শেষ হওয়ার পর কলব্যাক কোথায় অপেক্ষা করে, আর কোন\nকিউ আগে সুযোগ পায়।",[11,15,16],{},"ক্রম মেনে পড়লে ভালো, কারণ দ্বিতীয়টা প্রথমটার উপর দাঁড়িয়ে আছে।",{"title":18,"searchDepth":19,"depth":19,"links":20},"",3,[],"জাভাস্ক্রিপ্ট এক থ্রেডে চলেও কীভাবে একসাথে অনেক কাজ সামলায়।",false,20,"md",true,"lucide:repeat","bn","beginner",{},1,"\u002Flearn\u002Fbn\u002Fcourses\u002Fevent-loop",[],[],{"title":5,"description":21},null,"learn\u002Fbn\u002Fcourses\u002Fevent-loop\u002Findex",[38],"javascript","জাভাস্ক্রিপ্টের একটাই কল স্ট্যাক — মানে এক সময়ে একটার বেশি কাজ চলতে পারে না।\nতবু নেটওয়ার্ক রিকোয়েস্ট, টাইমার আর ক্লিক একসাথে সামলানো যায়, কারণ ভারী\nকাজগুলো ভাষাটা নিজে করে না; ব্রাউজার করে। ব্রাউজার কাজ শেষ করে কলব্যাকটা একটা\nকিউতে রেখে দেয়, আর ইভেন্ট লুপ স্ট্যাক খালি হলে সেটা তুলে নেয়।\nএই একটা নিয়ম বুঝলে `setTimeout(fn, 0)`-এর দেরি, প্রমিজের আগে চলা, আর\n\"পেজ হ্যাং করে আছে\" — তিনটাই একই ব্যাখ্যায় মিলে যায়।\n",[41,42,43],"ইভেন্ট-লুপ","অ্যাসিঙ্ক","প্রমিজ","2026-08-06","6BoixVqlBPimn2bTW-mXZLz2hVlq88kHiVNkO_SLh9w",{"left":47,"top":47,"width":48,"height":48,"rotate":47,"vFlip":22,"hFlip":22,"body":49},0,24,"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"m6 9l6 6l6-6\"\u002F>",{"left":47,"top":47,"width":48,"height":48,"rotate":47,"vFlip":22,"hFlip":22,"body":51},"\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":47,"top":47,"width":48,"height":48,"rotate":47,"vFlip":22,"hFlip":22,"body":53},"\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":47,"top":47,"width":48,"height":48,"rotate":47,"vFlip":22,"hFlip":22,"body":55},"\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":47,"top":47,"width":48,"height":48,"rotate":47,"vFlip":22,"hFlip":22,"body":57},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M5 12h14m-7-7l7 7l-7 7\"\u002F>",{"left":47,"top":47,"width":48,"height":48,"rotate":47,"vFlip":22,"hFlip":22,"body":59},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M4 5h16M4 12h16M4 19h16\"\u002F>",{"left":47,"top":47,"width":48,"height":48,"rotate":47,"vFlip":22,"hFlip":22,"body":61},"\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":47,"top":47,"width":48,"height":48,"rotate":47,"vFlip":22,"hFlip":22,"body":63},"\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":47,"top":47,"width":48,"height":48,"rotate":47,"vFlip":22,"hFlip":22,"body":65},"\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":47,"top":47,"width":48,"height":48,"rotate":47,"vFlip":22,"hFlip":22,"body":67,"hidden":25},"\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>",{"left":47,"top":47,"width":48,"height":48,"rotate":47,"vFlip":22,"hFlip":22,"body":69},"\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":47,"top":47,"width":48,"height":48,"rotate":47,"vFlip":22,"hFlip":22,"body":71},"\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>",{"left":47,"top":47,"width":48,"height":48,"rotate":47,"vFlip":22,"hFlip":22,"body":73},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M7 7h10v10M7 17L17 7\"\u002F>",[75,338],{"id":76,"title":77,"access":6,"body":78,"description":332,"extension":24,"lang":27,"meta":333,"navigation":25,"order":30,"partial":22,"path":334,"seo":335,"stem":336,"__hash__":337},"lessons\u002Flearn\u002Fbn\u002Fcourses\u002Fevent-loop\u002F01.call-stack.md","কল স্ট্যাক",{"type":8,"value":79,"toc":328},[80,84,87,193,214,219,222,225,288,291,297,301,312,315,324],[81,82,77],"h1",{"id":83},"কল-স্ট্যাক",[11,85,86],{},"জাভাস্ক্রিপ্ট যখন একটা ফাংশন ডাকে, সেটা একটা স্ট্যাকের উপরে বসে। ফাংশনটা শেষ\nহলে স্ট্যাক থেকে নেমে যায়। শেষেরটা আগে নামে — এটাই স্ট্যাক।",[88,89,93],"pre",{"className":90,"code":91,"language":92,"meta":18,"style":18},"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",[94,95,96,112,131,136,142,152,161,175,180,185],"code",{"__ignoreMap":18},[97,98,100,104,108],"span",{"class":99,"line":30},"line",[97,101,103],{"class":102},"sEYkB","function",[97,105,107],{"class":106},"s-wk_"," ভেতরে",[97,109,111],{"class":110},"sM9_K","() {\n",[97,113,115,118,121,124,128],{"class":99,"line":114},2,[97,116,117],{"class":110},"  console.",[97,119,120],{"class":106},"log",[97,122,123],{"class":110},"(",[97,125,127],{"class":126},"szYpP","'ভেতরের কাজ'",[97,129,130],{"class":110},")\n",[97,132,133],{"class":99,"line":19},[97,134,135],{"class":110},"}\n",[97,137,139],{"class":99,"line":138},4,[97,140,141],{"emptyLinePlaceholder":25},"\n",[97,143,145,147,150],{"class":99,"line":144},5,[97,146,103],{"class":102},[97,148,149],{"class":106}," বাইরে",[97,151,111],{"class":110},[97,153,155,158],{"class":99,"line":154},6,[97,156,157],{"class":106},"  ভেতরে",[97,159,160],{"class":110},"()\n",[97,162,164,166,168,170,173],{"class":99,"line":163},7,[97,165,117],{"class":110},[97,167,120],{"class":106},[97,169,123],{"class":110},[97,171,172],{"class":126},"'বাইরের কাজ'",[97,174,130],{"class":110},[97,176,178],{"class":99,"line":177},8,[97,179,135],{"class":110},[97,181,183],{"class":99,"line":182},9,[97,184,141],{"emptyLinePlaceholder":25},[97,186,188,191],{"class":99,"line":187},10,[97,189,190],{"class":106},"বাইরে",[97,192,160],{"class":110},[11,194,195,198,199,202,203,206,207,210,211,213],{},[94,196,197],{},"বাইরে()"," ডাকার পর স্ট্যাক দাঁড়ায় ",[94,200,201],{},"[বাইরে]",", তারপর ",[94,204,205],{},"[বাইরে, ভেতরে]","। ",[94,208,209],{},"ভেতরে","\nশেষ হলে নেমে যায়, ",[94,212,190],{}," তার পরের লাইনে যায়, তারপর সেও নামে।",[215,216,218],"h2",{"id":217},"স্ট্যাক-একটাই","স্ট্যাক একটাই",[11,220,221],{},"এটাই আসল কথা। ব্রাউজারে জাভাস্ক্রিপ্টের একটাই কল স্ট্যাক, মানে একটাই থ্রেড।\nএক সময়ে একটাই কাজ চলতে পারে।",[11,223,224],{},"তাই যদি একটা ফাংশন অনেকক্ষণ ধরে চলে, আর কিছুই চলতে পারে না — ক্লিক কাজ করে না,\nঅ্যানিমেশন থেমে যায়, স্ক্রল আটকে যায়:",[88,226,228],{"className":90,"code":227,"language":92,"meta":18,"style":18},"const শুরু = Date.now()\nwhile (Date.now() - শুরু \u003C 5000) {\n  \u002F\u002F পাঁচ সেকেন্ড ধরে স্ট্যাক দখল করে রাখা\n}\n",[94,229,230,250,278,284],{"__ignoreMap":18},[97,231,232,235,239,242,245,248],{"class":99,"line":30},[97,233,234],{"class":102},"const",[97,236,238],{"class":237},"sQdni"," শুরু",[97,240,241],{"class":102}," =",[97,243,244],{"class":110}," Date.",[97,246,247],{"class":106},"now",[97,249,160],{"class":110},[97,251,252,255,258,260,263,266,269,272,275],{"class":99,"line":114},[97,253,254],{"class":102},"while",[97,256,257],{"class":110}," (Date.",[97,259,247],{"class":106},[97,261,262],{"class":110},"() ",[97,264,265],{"class":102},"-",[97,267,268],{"class":110}," শুরু ",[97,270,271],{"class":102},"\u003C",[97,273,274],{"class":237}," 5000",[97,276,277],{"class":110},") {\n",[97,279,280],{"class":99,"line":19},[97,281,283],{"class":282},"s0RzX","  \u002F\u002F পাঁচ সেকেন্ড ধরে স্ট্যাক দখল করে রাখা\n",[97,285,286],{"class":99,"line":138},[97,287,135],{"class":110},[11,289,290],{},"এই পাঁচ সেকেন্ড পেজটা পুরোপুরি জমে থাকবে। \"পেজ হ্যাং করেছে\" বলতে সাধারণত\nএটাই বোঝায় — কোনো একটা কাজ স্ট্যাক ছাড়ছে না।",[292,293,294],"note",{},[11,295,296],{},"ব্রাউজার রেন্ডারিংও একই থ্রেডে হয়। তাই স্ট্যাক ব্যস্ত মানে শুধু আপনার কোড নয়,\nপর্দায় আঁকার কাজটাও থেমে থাকে।",[215,298,300],{"id":299},"তাহলে-অ্যাসিঙ্ক-কাজ-হয়-কীভাবে","তাহলে অ্যাসিঙ্ক কাজ হয় কীভাবে",[11,302,303,304,307,308,311],{},"এখানেই ভুল ধারণাটা তৈরি হয়। ",[94,305,306],{},"fetch()"," বা ",[94,309,310],{},"setTimeout()"," জাভাস্ক্রিপ্ট নিজে\nকরে না। এগুলো ব্রাউজারের দেওয়া সুবিধা, আর ব্রাউজারের নিজের আলাদা থ্রেড আছে।",[11,313,314],{},"জাভাস্ক্রিপ্ট শুধু বলে দেয় \"এই কাজটা করো, শেষ হলে এই ফাংশনটা ডেকো\" — তারপর\nসাথে সাথে পরের লাইনে চলে যায়। স্ট্যাক খালি থাকে।",[11,316,317,318,323],{},"কাজটা শেষ হলে ব্রাউজার সেই ফাংশনটা কোথায় রাখে, আর কখন সেটা চলার সুযোগ পায় —\nসেটাই ",[319,320,322],"a",{"href":321},"\u002Flearn\u002Fbn\u002Fcourses\u002Fevent-loop\u002Ftask-queues","পরের লেখার"," বিষয়।",[325,326,327],"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":18,"searchDepth":19,"depth":19,"links":329},[330,331],{"id":217,"depth":114,"text":218},{"id":299,"depth":114,"text":300},"এক থ্রেড, এক স্ট্যাক — আর এর ফলে কী কী হয়।",{},"\u002Flearn\u002Fbn\u002Fcourses\u002Fevent-loop\u002Fcall-stack",{"title":77,"description":332},"learn\u002Fbn\u002Fcourses\u002Fevent-loop\u002F01.call-stack","DJUl4NoRMtRnjBREqzu8tKBO5N_YblbZWLbqXkqAdTQ",{"id":339,"title":340,"access":6,"body":341,"description":674,"extension":24,"lang":27,"meta":675,"navigation":25,"order":114,"partial":22,"path":321,"seo":676,"stem":677,"__hash__":678},"lessons\u002Flearn\u002Fbn\u002Fcourses\u002Fevent-loop\u002F02.task-queues.md","টাস্ক কিউ",{"type":8,"value":342,"toc":669},[343,346,349,352,358,362,365,423,431,536,552,569,578,582,585,626,633,642,646,666],[81,344,340],{"id":345},"টাস্ক-কিউ",[11,347,348],{},"ব্রাউজার কাজ শেষ করার পর কলব্যাকটা সরাসরি চালায় না। স্ট্যাক তখন ব্যস্ত থাকতে\nপারে। তাই কলব্যাকটা একটা কিউতে গিয়ে অপেক্ষা করে।",[11,350,351],{},"ইভেন্ট লুপের কাজ একটাই, আর সেটা খুব সহজ:",[353,354,355],"blockquote",{},[11,356,357],{},"স্ট্যাক খালি? তাহলে কিউ থেকে একটা কাজ তুলে স্ট্যাকে বসাও।",[215,359,361],{"id":360},"দুটো-কিউ-সমান-নয়","দুটো কিউ, সমান নয়",[11,363,364],{},"এখানেই বেশিরভাগ বিভ্রান্তি।",[366,367,368,384],"table",{},[369,370,371],"thead",{},[372,373,374,378,381],"tr",{},[375,376,377],"th",{},"কিউ",[375,379,380],{},"কারা যায়",[375,382,383],{},"অগ্রাধিকার",[385,386,387,406],"tbody",{},[372,388,389,393,403],{},[390,391,392],"td",{},"মাইক্রোটাস্ক",[390,394,395,396,399,400],{},"প্রমিজ, ",[94,397,398],{},"queueMicrotask",", ",[94,401,402],{},"MutationObserver",[390,404,405],{},"বেশি",[372,407,408,411,420],{},[390,409,410],{},"ম্যাক্রোটাস্ক",[390,412,413,399,416,419],{},[94,414,415],{},"setTimeout",[94,417,418],{},"setInterval",", ক্লিক, নেটওয়ার্ক ইভেন্ট",[390,421,422],{},"কম",[11,424,425,426,430],{},"স্ট্যাক খালি হলে ইভেন্ট লুপ ",[427,428,429],"strong",{},"পুরো মাইক্রোটাস্ক কিউ খালি করে",", তারপর একটা\nম্যাক্রোটাস্ক নেয়। একটা নয় — পুরোটা।",[88,432,434],{"className":90,"code":433,"language":92,"meta":18,"style":18},"console.log('১')\n\nsetTimeout(() => console.log('২'), 0)\n\nPromise.resolve().then(() => console.log('৩'))\n\nconsole.log('৪')\n",[94,435,436,450,454,482,486,519,523],{"__ignoreMap":18},[97,437,438,441,443,445,448],{"class":99,"line":30},[97,439,440],{"class":110},"console.",[97,442,120],{"class":106},[97,444,123],{"class":110},[97,446,447],{"class":126},"'১'",[97,449,130],{"class":110},[97,451,452],{"class":99,"line":114},[97,453,141],{"emptyLinePlaceholder":25},[97,455,456,458,461,464,467,469,471,474,477,480],{"class":99,"line":19},[97,457,415],{"class":106},[97,459,460],{"class":110},"(() ",[97,462,463],{"class":102},"=>",[97,465,466],{"class":110}," console.",[97,468,120],{"class":106},[97,470,123],{"class":110},[97,472,473],{"class":126},"'২'",[97,475,476],{"class":110},"), ",[97,478,479],{"class":237},"0",[97,481,130],{"class":110},[97,483,484],{"class":99,"line":138},[97,485,141],{"emptyLinePlaceholder":25},[97,487,488,491,494,497,500,503,505,507,509,511,513,516],{"class":99,"line":144},[97,489,490],{"class":237},"Promise",[97,492,493],{"class":110},".",[97,495,496],{"class":106},"resolve",[97,498,499],{"class":110},"().",[97,501,502],{"class":106},"then",[97,504,460],{"class":110},[97,506,463],{"class":102},[97,508,466],{"class":110},[97,510,120],{"class":106},[97,512,123],{"class":110},[97,514,515],{"class":126},"'৩'",[97,517,518],{"class":110},"))\n",[97,520,521],{"class":99,"line":154},[97,522,141],{"emptyLinePlaceholder":25},[97,524,525,527,529,531,534],{"class":99,"line":163},[97,526,440],{"class":110},[97,528,120],{"class":106},[97,530,123],{"class":110},[97,532,533],{"class":126},"'৪'",[97,535,130],{"class":110},[11,537,538,539,399,542,399,545,399,548,551],{},"আউটপুট: ",[94,540,541],{},"১",[94,543,544],{},"৪",[94,546,547],{},"৩",[94,549,550],{},"২","।",[11,553,554,556,557,559,560,562,563,565,566,568],{},[94,555,541],{}," আর ",[94,558,544],{}," সরাসরি চলে, কারণ ওরা স্ট্যাকেই আছে। তারপর স্ট্যাক খালি হয়।\n",[94,561,547],{}," মাইক্রোটাস্ক, তাই আগে। ",[94,564,550],{}," ম্যাক্রোটাস্ক, তাই শেষে — ",[94,567,479],{}," মিলিসেকেন্ড\nলেখা থাকা সত্ত্বেও।",[570,571,572],"tip",{},[11,573,574,577],{},[94,575,576],{},"setTimeout(fn, 0)"," মানে \"এখনই চালাও\" নয়। মানে \"কিউয়ের পেছনে দাঁড় করাও\"।\nসময়টা সর্বনিম্ন দেরি, নিশ্চিত দেরি নয়।",[215,579,581],{"id":580},"মাইক্রোটাস্ক-দিয়ে-পেজ-আটকে-দেওয়া","মাইক্রোটাস্ক দিয়ে পেজ আটকে দেওয়া",[11,583,584],{},"যেহেতু লুপ পুরো মাইক্রোটাস্ক কিউ খালি করে তবেই এগোয়, একটা মাইক্রোটাস্ক যদি\nনিজেই আরেকটা মাইক্রোটাস্ক যোগ করতে থাকে, কিউ কখনো খালি হয় না:",[88,586,588],{"className":90,"code":587,"language":92,"meta":18,"style":18},"function চিরকাল() {\n  Promise.resolve().then(চিরকাল)\n}\nচিরকাল()\n",[94,589,590,599,615,619],{"__ignoreMap":18},[97,591,592,594,597],{"class":99,"line":30},[97,593,103],{"class":102},[97,595,596],{"class":106}," চিরকাল",[97,598,111],{"class":110},[97,600,601,604,606,608,610,612],{"class":99,"line":114},[97,602,603],{"class":237},"  Promise",[97,605,493],{"class":110},[97,607,496],{"class":106},[97,609,499],{"class":110},[97,611,502],{"class":106},[97,613,614],{"class":110},"(চিরকাল)\n",[97,616,617],{"class":99,"line":19},[97,618,135],{"class":110},[97,620,621,624],{"class":99,"line":138},[97,622,623],{"class":106},"চিরকাল",[97,625,160],{"class":110},[11,627,628,629,632],{},"পেজ জমে যাবে। ",[94,630,631],{},"while (true)","-এর মতোই, কিন্তু দেখতে নিরীহ — কারণ কোডে কোনো\nলুপ নেই।",[634,635,636],"warning",{},[11,637,638,639,641],{},"এই ভুলটা বাস্তবে ঘটে রিকার্সিভ প্রমিজ চেইনে — যেখানে থামার শর্তটা কখনো\nসত্যি হয় না। ",[94,640,415],{}," দিয়ে একই জিনিস লিখলে পেজ বাঁচত, কারণ ম্যাক্রোটাস্কের\nমাঝে ব্রাউজার রেন্ডার করার সুযোগ পায়।",[215,643,645],{"id":644},"মনে-রাখার-মতো","মনে রাখার মতো",[647,648,649,653,656,663],"ul",{},[650,651,652],"li",{},"স্ট্যাক খালি না হলে কোনো কলব্যাক চলে না।",[650,654,655],{},"মাইক্রোটাস্ক সবসময় ম্যাক্রোটাস্কের আগে।",[650,657,658,659,662],{},"মাইক্রোটাস্ক কিউ ",[427,660,661],{},"পুরোটা"," খালি হয়, একটা করে নয়।",[650,664,665],{},"টাইমারের সময় মানে সর্বনিম্ন দেরি।",[325,667,668],{},"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":18,"searchDepth":19,"depth":19,"links":670},[671,672,673],{"id":360,"depth":114,"text":361},{"id":580,"depth":114,"text":581},{"id":644,"depth":114,"text":645},"ম্যাক্রোটাস্ক, মাইক্রোটাস্ক আর কোনটা আগে চলে।",{},{"title":340,"description":674},"learn\u002Fbn\u002Fcourses\u002Fevent-loop\u002F02.task-queues","9RU6CRf8BUDTOLqXJkwY2RnOFqCaUHLpBXRyoA9O8kM",{"course":31},{"left":47,"top":47,"width":48,"height":48,"rotate":47,"vFlip":22,"hFlip":22,"body":681},"\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":47,"top":47,"width":48,"height":48,"rotate":47,"vFlip":22,"hFlip":22,"body":683},"\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":47,"top":47,"width":48,"height":48,"rotate":47,"vFlip":22,"hFlip":22,"body":685},"\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":47,"top":47,"width":48,"height":48,"rotate":47,"vFlip":22,"hFlip":22,"body":687},"\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":47,"top":47,"width":48,"height":48,"rotate":47,"vFlip":22,"hFlip":22,"body":689},"\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":47,"top":47,"width":48,"height":48,"rotate":47,"vFlip":22,"hFlip":22,"body":691},"\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":693,"title":5,"course":31,"description":694,"extension":695,"lang":27,"meta":696,"passingScore":697,"questions":698,"shuffle":25,"stem":768,"__hash__":769},"quizzes\u002Flearn\u002Fbn\u002Fcourses\u002Fevent-loop\u002Fquiz.yml","কল স্ট্যাক আর টাস্ক কিউ নিয়ে পাঁচটা প্রশ্ন।","yml",{},70,[699,715,728,744,756],{"id":700,"question":701,"type":702,"options":703,"correct":712,"explanation":713,"difficulty":714},"q1","জাভাস্ক্রিপ্টে একসাথে কয়টা কল স্ট্যাক থাকে?","single",[704,706,709],{"id":319,"text":705},"একটা",{"id":707,"text":708},"b","প্রতিটা ফাংশনের জন্য একটা",{"id":710,"text":711,"ততগুলো":35},"c","যতগুলো CPU কোর",[319],"একটাই স্ট্যাক, মানে একটাই থ্রেড — তাই এক সময়ে একটাই কাজ চলে।","easy",{"id":716,"question":717,"type":702,"options":718,"correct":725,"explanation":726,"difficulty":727},"q2","`setTimeout(fn, 0)` লিখলে `fn` কখন চলে?",[719,721,723],{"id":319,"text":720,"লাইনটা পড়ার সময়ই":35},"সাথে সাথে",{"id":707,"text":722,"ম্যাক্রোটাস্ক কিউ থেকে":35},"স্ট্যাক খালি হওয়ার পর",{"id":710,"text":724},"ঠিক ০ মিলিসেকেন্ড পরে",[707],"সময়টা সর্বনিম্ন দেরি, নিশ্চিত দেরি নয়। কলব্যাক ম্যাক্রোটাস্ক কিউতে অপেক্ষা করে যতক্ষণ না স্ট্যাক খালি হয়।","medium",{"id":729,"question":730,"type":731,"options":732,"correct":742,"explanation":743,"difficulty":727},"q3","নিচের কোনগুলো মাইক্রোটাস্ক কিউতে যায়?","multiple",[733,735,737,739],{"id":319,"text":734},"প্রমিজের `.then()` কলব্যাক",{"id":707,"text":736},"`setInterval` কলব্যাক",{"id":710,"text":738},"`queueMicrotask()` কলব্যাক",{"id":740,"text":741},"d","বাটনে ক্লিকের হ্যান্ডলার",[319,710],"প্রমিজ আর `queueMicrotask` মাইক্রোটাস্ক; টাইমার আর DOM ইভেন্ট ম্যাক্রোটাস্ক।",{"id":745,"question":746,"type":702,"options":747,"correct":753,"explanation":754,"difficulty":755},"q4","স্ট্যাক খালি হলে ইভেন্ট লুপ প্রথমে কী করে?",[748,750,751],{"id":319,"text":749},"একটা ম্যাক্রোটাস্ক নেয়",{"id":707,"text":429},{"id":710,"text":752,"তারপর একটা ম্যাক্রোটাস্ক":35},"একটা মাইক্রোটাস্ক নেয়",[707],"পুরো মাইক্রোটাস্ক কিউ খালি হয় তবেই একটা ম্যাক্রোটাস্ক নেওয়া হয়। এই কারণেই রিকার্সিভ প্রমিজ চেইন পেজ আটকে দিতে পারে।","hard",{"id":757,"question":758,"type":702,"options":759,"correct":766,"explanation":767,"difficulty":714},"q5","একটা ফাংশন পাঁচ সেকেন্ড ধরে সিঙ্ক্রোনাসভাবে চললে কী হয়?",[760,762,764],{"id":319,"text":761,"বাকি সব চলে":35},"শুধু ওই ফাংশনটা দেরি করে",{"id":707,"text":763,"অ্যানিমেশন আর রেন্ডারিং — সবই থেমে থাকে":35},"ক্লিক",{"id":710,"text":765},"ব্রাউজার সেটাকে আলাদা থ্রেডে সরিয়ে দেয়",[707],"রেন্ডারিংও একই থ্রেডে হয়, তাই স্ট্যাক দখল থাকলে পুরো পেজ জমে যায়।","learn\u002Fbn\u002Fcourses\u002Fevent-loop\u002Fquiz","qmac7HLkmWYOZH8An4qEEfxLXlXyH9FzgnGtRREhYL4",{"id":4,"title":5,"access":6,"body":771,"description":21,"draft":22,"estimatedMinutes":23,"extension":24,"featured":25,"icon":26,"lang":27,"level":28,"meta":779,"navigation":25,"order":30,"path":31,"prerequisites":780,"resources":781,"seo":782,"sku":35,"stem":36,"subjects":783,"summary":39,"tags":784,"updated":44,"__hash__":45},{"type":8,"value":772,"toc":777},[773,775],[11,774,13],{},[11,776,16],{},{"title":18,"searchDepth":19,"depth":19,"links":778},[],{},[],[],{"title":5,"description":21},[38],[41,42,43],{"left":47,"top":47,"width":48,"height":48,"rotate":47,"vFlip":22,"hFlip":22,"body":786},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"m9 18l6-6l-6-6\"\u002F>",{"left":47,"top":47,"width":48,"height":48,"rotate":47,"vFlip":22,"hFlip":22,"body":788},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M19 5L5 19\"\u002F>\u003Ccircle cx=\"6.5\" cy=\"6.5\" r=\"2.5\"\u002F>\u003Ccircle cx=\"17.5\" cy=\"17.5\" r=\"2.5\"\u002F>\u003C\u002Fg>",1791742747988]