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