TGViewer
CodeVerse | دنیای برنامه نویسان CodeVerse | دنیای برنامه نویسان @codeverse_dev · 1.06K subscribers
Post #592 430
⚡ چرا forEach همیشه انتخاب خوبی نیست؟

این کد رو زیاد می‌بینیم:

users.forEach(async (user) => {
await sendEmail(user);
});

ظاهرش کاملاً منطقیه.

ولی یک مشکل مهم داره:

تابع forEach منتظر Promiseهای داخل Callback نمی‌مونه.

یعنی ممکنه همه sendEmailها تقریباً هم‌زمان شروع بشن و کدی که بعد از forEach نوشته شده، قبل از تمام شدن اون‌ها اجرا بشه.

اگر واقعاً می‌خوای یکی‌یکی اجرا بشن:

for (const user of users) {
await sendEmail(user);
}

و اگر مستقل از هم هستن و می‌خوای هم‌زمان اجرا بشن:

await Promise.all(
users.map(user => sendEmail(user))
);

تفاوت این دو فقط Syntax نیست.

اولی:

کنترل‌شده و ترتیبی

دومی:

هم‌زمان و سریع‌تر، ولی با مصرف منابع بیشتر

پس وقتی Async Code می‌نویسی، همیشه از خودت بپرس:

این عملیات باید یکی‌یکی انجام بشه یا واقعاً می‌تونن هم‌زمان اجرا بشن؟

همین یک سؤال می‌تونه جلوی کلی Bug و Performance Problem رو بگیره.

@CodeVerse_dev
  • 👍 5
  • ❤ 1
More from @codeverse_dev
  1. Oct 7, 2026👨‍💻 برنامه‌نویسی با AI راحت‌تر شده؛ پس چرا بعضی Developerها خسته‌تر شده‌اند؟ طبق نظرسنجی…
  2. Oct 7, 2026🚨 وردپرس 7.1.3 منتشر شد؛ این یکی را عقب نینداز وردپرس دیروز نسخه 7.1.3 را منتشر کرد؛ یک آ…
  3. Oct 6, 2026شرکت Google وارد یک درگیری جدی با ناشران شده ⚖️ رگولاتور رقابت لهستان اعلام کرده Google را…
  4. Oct 6, 2026اگر Windows 11 داری، قبل از نصب بعضی آپدیت‌ها حواست باشد ⚠️ مایکروسافت تأیید کرده آپدیت پی…
  5. Oct 6, 2026اگر Chrome استفاده می‌کنی، این آپدیت را جدی بگیر ⚡ نسخه Stable مرورگر Chrome برای دسکتاپ ب…
  6. Oct 6, 2026🖥 سازنده محتوایی؟ ویندوزت بدون این ۵ نرم‌افزار نصفه‌ست! خب راستشو بخوای، من خودم تا چند و…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →