درود دوستان 👋 توی این پست می‌‌خوایم با متدهای استاتیک Promise ها توی جاوااسکریپت آشنا بشیم. این متدها شامل:

 

این متدها که از کلاس گلوبال Promise به صورت استاتیک قابل دسترس هستن (یعنی مثلاً Promise.resolve() یا Promise.race()) کاربردهای زیادی دارن و بهمون کمک می‌کنن یک برنامهٔ سریع‌تر و پویاتر داشته باشیم. توی این پست این متدها رو بررسی می‌کنیم و با مثال‌هایی از کاربرد اونها توی دنیا واقعی آشنا می‌شیم.

 

متد استاتیک چیه؟ 🤔

متد استاتیک به متدهایی گفته میشه که بدون نیاز به ساختن نمونه از یک کلاس قابل دسترس هستن. برای مثال همونطور که می‌دونیم متدهایی مثل then و catch فقط زمانی در دسترس هستن که یک آبجکت از Promise داشته باشیم:

const obj = new Promise(...);

obj.then(...);
obj.catch(...);

به این متدها گفته میشه Instance Methods و فقط توی نمونه‌ها (آبجکت‌های ساخته شده از کلاس) قابل دسترس هستن. اما از خود کلاس Promise متدهایی قابل دسترس هستن که بدون نیاز به ساختن آبجکت از می‌تونیم از اونها استفاده کنیم. مثل:

Promise.all(...)
Promise.any(...);

به این متدها گفته میشه متدهای استاتیک. متدهای استاتیک کاربردهای منحصر به فردی دارن که اونها رو از متدهای Instance متمایز می‌کنه که امیدوارم بتونیم اونها رو توی پست جداگونه بررسی کنیم. توی جاوااسکریپت نمونه‌های زیادی از متدهای استاتیک وجود داره مثل متد floor از کلاس Math. یا isArray از Array.

نکته: توی توضیحات بالا منظور از کلاس همون Constructor Function هست که توی جاوااسکریپت کاربردی شبیه کلاس‌ها توی برنامه‌نویسی شیء گرایی داره.

قبل از شروع، اگه با پرامیس‌ها آشنایی ندارین:

خب بریم که این متدها رو بررسی کنیم.

 

Promise.resolve()

این متد بلافاصله یک پرامیس fulfilled شده با مقدار مد نظرمون رو به خروجی میده:

const p = Promise.resolve(10);

p.then(value => alert(value)); // 10