Web appOpen in Telegram

Post⚡ چرا forEach همیشه انتخاب خوبی نیست؟

14 September 2026
C
CodeVerse | دنیای برنامه نویسان
⚡ چرا 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 · 424 ·

Nearby in the feed

CCodeVerse | دنیای برنامه نویسان🧩 Design Patterns in 3 Minutes | Factory Pattern فرض کن در پروژه یک سیستم پرداخت داری: if ($gateway === 'zarinpal') { $payment = new Zarinpal(); } if ($gateway CCodeVerse | دنیای برنامه نویسان🧩 چرا بعد از حذف یک افزونه، سرعت سایت همیشه بهتر نمی‌شه؟ یک تصور رایج: «این افزونه رو حذف کردم، پس دیتابیس هم سبک شد.» لزوماً نه. بعضی افزونه‌ها هنگام حذف، تمام
this message
CCodeVerse | دنیای برنامه نویسانیه باگ که از یه جای خیلی ساده شروع شد! یروز داشتم یکی از بخش‌های پروژه رو بررسی می‌کردم که متوجه شدم یه درخواست HTTP بیشتر از چیزی که انتظار داشتم اجرا میشه. اوCCodeVerse | دنیای برنامه نویسانیکی از خطرناک‌ترین جمله‌ها در یک پروژه: «فعلاً کار می‌کنه، بعداً درستش می‌کنیم.» «بعداً» معمولاً تبدیل می‌شود به: TODO ↓ TODO ↓ TODO ↓ Temporary Fix ↓ Temporary
CCodeVerse | دنیای برنامه نویسانCodeVerse | دنیای برنامه نویسان@codeverse_dev · channel · Tech
1 060subscribers302average post reach
Venue feed Open in Telegram

An open public feed from the search index ChatCrawler — “Google for public Telegram”; refreshed as the venue is crawled. Times are UTC.

Public content only, official Telegram API. About · FAQ · What we do not do · Remove a page · Catalog · Search · How we count