await واقعاً برنامه را متوقف نمیکند؟**خیلیها وقتی این را میبینند:
const data = await fetch(url);
فکر میکنند:
«روند JavaScript متوقف شد تا Response برسد.»
اما دقیقاً اینطور نیست.
متد
await باعث میشود اجهمان async functionon** تا آماده شدن Promise ادامه پیدا نکند؛ اما Event Loop میتواند کارهای دیگری را پردازش کند.مثلاً:
async function load() {
const data = await fetch(url);
console.log(data);
}
console.log("A");
load();
console.log("B");خروجی ابتدا:
A
B
و بعد ادامه اجرای
load انجام میشود.🎯 نکته مهم:
await ≠ توقف کل JavaScript
بلکه:
await
↓
Suspend current async function
↓
Event Loop continues
↓
Promise settles
↓
Function resumes
💡 اگر Event Loop و Promiseها را درست بفهمی، رفتار بسیاری از باگهای عجیب JavaScript برایت قابل پیشبینی میشود.
@CodeVerse_dev