یکی از اشتباهاتی که معمولا هر تازه‌کاری در مواجهه با زبان جاواسکریپت انجام می‌ده. استفاده نابجا از await توی لوپ هستش. این اشتباه یعنی چی؟ احتمالا خیلیا (خود من تا یک ماه پیش! این اشتباه رو می‌کردم. فرض کنید که این تابع someAsyncFunction توی مثال بالا قراره میلی ثانیه زمان صرف کنه تا محاسبتاش رو انجام بده! (آره خیلی کار خاصی با یه ورودی اینتجر می‌کنه?) خب با این زمانی که قراره صرف کنه کل این لوپ . ثانیه زمان برای انجامش کد شما/کاربر شما/خط بعدی کد شما و. غیره باید خیره با آفاق مغربی بمونه تا جواب برگرده. اما راه حل بهتر شدن بازدهی کد بالا با یه تغییر کوچیک می‌تونه به شدت توی پرفورمنس و بازدهی تغییر ایجاد کنه: الان چه اتفاقای افتاد؟ ما به‌جای این‌که برای حل شدن هر مرحله صبر کنیم، به همه گفتیم که برن اجرا بشن و اون Promise ها رو ریختیم تو یه آرایه که بتونیم کنترلشون کنیم. تو خط آخر هم منتظر می‌مونیم اونایی که هنوز تموم نشدن تموم شن. این‌جوری شاید یکم بیشتر از زمان مورد نیاز برای یک بار انجام شدن این محاسبه زمان نیاز داشته باشین! یعنی همون میلی ثانیه! یه راه دیگه هم برای نوشتن همون مثال بالا هست: فرق این حال با حالت قبلی اینه که کل این داستان‌ها باید تموم شن تا خطوط بعدی اجرا بشن اما گاهی ما اصلا به انجام شدن این لوپ تا آخر مسیر نیازی نداریم. پس می‌تونیم اون بخش: رو بذاریم آخر متدمون اجرا بشه. به این تکنیک می‌گن Concurrent programming . امیدوارم براتون مفید بوده باشه و اگر چیز دیگه‌ای به ذهنتون می‌رسه که من ننوشتم خوشحال می‌شم برام بنویسید?