چقدر از Event Loop در جاوااسکریپت اطلاعات دارید؟ 🦦
Event Loop یه مکانیزم خیلی مهم توی جاوااسکریپته که باعث میشه این زبان با وجود Single-Threaded بودن، بتونه غیر بلاککننده و (Asynchronous) کار کنه.
به زبان ساده Event Loop مسئول اینه که کارهای مختلف جاوااسکریپت رو مدیریت کنه و مطمئن بشه، کدهای ما به ترتیب و به درستی اجرا میشن.
اجزای اصلی Event Loop شامل موارد زیر هست 🦠
1. Call Stack
یک لیست (ساختار دادهای LIFO) که جاوااسکریپت توش توابع در حال اجرا رو نگه میداره. هر تابعی که صدا زده میشه میره روی استک و بعد از اجرا، ازش حذف میشه. این قلب تپنده اجرای کدهای همزمان (synchronous) هست.
2. Web APIs
وقتی یه کار غیربلاککننده مثل تایمر (setTimeout) یا ریکوستی(fetch) اجرا میشه، به Web APIs سپرده میشه. Web APIs این کارها رو در محیط مرورگر یا Node.js مدیریت میکنه و بعد از تموم شدن، نتیجه رو به Callback Queue میفرسته.
3. Callback Queue
یه صف که توابع آماده اجرا مثل تایمرها و Event Listeners در اون نگهداری میشن. وقتی Call Stack خالی بشه، Event Loop این صف رو یکییکی اجرا میکنه.
4. Microtasks Queue
وظایفی مثل Promise.then و Mutation Observers در این صف قرار میگیرن. این صف همیشه قبل از Callback Queue پردازش میشه و اولویت بیشتری داره.
5. Macrotasks Queue
وظایفی مثل setTimeout و setInterval در این صف قرار میگیرن. این صف بعد از Microtasks پردازش میشه و شامل کارهایی با اولویت پایینتره.
به زبان ساده، Event Loop مسئول اینه که کارهای مختلف جاوااسکریپت رو به ترتیب و به درستی اجرا کنه. این مکانیزم به جاوااسکریپت قدرت انجام عملیات سنگین مثل درخواستهای شبکه و انیمیشنها رو بدون قفل کردن برنامه میده.
#eventloop
@CodeModule
Event Loop یه مکانیزم خیلی مهم توی جاوااسکریپته که باعث میشه این زبان با وجود Single-Threaded بودن، بتونه غیر بلاککننده و (Asynchronous) کار کنه.
به زبان ساده Event Loop مسئول اینه که کارهای مختلف جاوااسکریپت رو مدیریت کنه و مطمئن بشه، کدهای ما به ترتیب و به درستی اجرا میشن.
اجزای اصلی Event Loop شامل موارد زیر هست 🦠
1. Call Stack
یک لیست (ساختار دادهای LIFO) که جاوااسکریپت توش توابع در حال اجرا رو نگه میداره. هر تابعی که صدا زده میشه میره روی استک و بعد از اجرا، ازش حذف میشه. این قلب تپنده اجرای کدهای همزمان (synchronous) هست.
2. Web APIs
وقتی یه کار غیربلاککننده مثل تایمر (setTimeout) یا ریکوستی(fetch) اجرا میشه، به Web APIs سپرده میشه. Web APIs این کارها رو در محیط مرورگر یا Node.js مدیریت میکنه و بعد از تموم شدن، نتیجه رو به Callback Queue میفرسته.
3. Callback Queue
یه صف که توابع آماده اجرا مثل تایمرها و Event Listeners در اون نگهداری میشن. وقتی Call Stack خالی بشه، Event Loop این صف رو یکییکی اجرا میکنه.
4. Microtasks Queue
وظایفی مثل Promise.then و Mutation Observers در این صف قرار میگیرن. این صف همیشه قبل از Callback Queue پردازش میشه و اولویت بیشتری داره.
5. Macrotasks Queue
وظایفی مثل setTimeout و setInterval در این صف قرار میگیرن. این صف بعد از Microtasks پردازش میشه و شامل کارهایی با اولویت پایینتره.
به زبان ساده، Event Loop مسئول اینه که کارهای مختلف جاوااسکریپت رو به ترتیب و به درستی اجرا کنه. این مکانیزم به جاوااسکریپت قدرت انجام عملیات سنگین مثل درخواستهای شبکه و انیمیشنها رو بدون قفل کردن برنامه میده.
از بحث Event Loop در اکثر مصاحبه ها سوال میاد و یادگیریش، بهتون در درک جاوااسکریپت خیلی کمک میکنه.
#eventloop
@CodeModule
🔥15👌4❤🔥3