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