جستجو برای:
  • صفحه اصلی
  • لیست کامل دوره ها
  • مگامگ (محتوا رایگان)
    • Javascript
    • UX
    • HTML/CSS
    • UI
  • حساب کاربری شما
    • داشبورد
    • دوره های خریداری شده
    • ویرایش پروفایل کاربری
 
مگادمی
  • صفحه اصلی
  • لیست کامل دوره ها
  • مگامگ (محتوا رایگان)
    • Javascript
    • UX
    • HTML/CSS
    • UI
  • حساب کاربری شما
    • داشبورد
    • دوره های خریداری شده
    • ویرایش پروفایل کاربری
0
ورود / عضویت

مگادمیمگامگمقالاتJavascriptپرامیس: راهی برای رهایی از جهنم CallBack Function

پرامیس: راهی برای رهایی از جهنم CallBack Function

15 دی 1402
ارسال شده توسط Fatemeh Satouri
Javascript ، مقالات
949 بازدید
onai

آنچه خواهید دید :

Toggle
      • یعنی ما در پرامیس نقطه شکست و موفقیت داریم. که در صورت موفقیت یک اتفاق بیوفتد و در صورت شکست یک اتفاق دیگر.
  • پرامیس دارای چرخه حیاط هست، که دارای سه وضعیت است:

سلام!

چخبر از کال بک فانکشن های تو در تو؟

پرامیس

در سال ۲۰۰۵ درست زمانی که کال بک فانکشن‌های تو در تو باعث اختلال در درک برنامه نویسی شده بودند promise پا به عرصه گذاشت.

گفتم چی؟ promise؟

 

چیست promise؟

با پرامیس ما می‌توانیم بخشی از کدهامون را به صورت آسنکرون اجرا کنیم به طوری که پس از پایان اجرای کدهای آسنکرون و مشخص شدن نتیجه، یک تابع کالبک مناسب فراخوانی و اجرا شود.

خب این یعنی چی؟

یعنی ما در پرامیس نقطه شکست و موفقیت داریم. که در صورت موفقیت یک اتفاق بیوفتد و در صورت شکست یک اتفاق دیگر.

پرامیس

خب! بیایین با هم یکم تصویر و بررسی کنیم،

پرامیس دارای چرخه حیاط هست، که دارای سه وضعیت است:

1 ـ pending (حالت انتظار)

2 ـ Fullfilled (حالت تکمیل)

3 ـ Reject (حالت شکست)

 

حالت انتظار:

به زمانی گفته میشود که هنوز اجرای کد های آسنکرون تمام نشده و نتیجه مشخص نیست.

حالت تکمیل:

به زمانی گفته میشود که اجرای کد های آسنکرون با موفقیت تمام شده است.

حالت شکست:

به زمانی گفته میشود که اجرای کد های آسنکرون با شکست مواجه شده است.

 

خب! حواسم هست، دوتا اسم نا آشنای دیگه رو دارم میبینم، یادتونه گفتم: ما دارای دو حالت شکست و موفقیت هستیم؟

نام یا تعریف تابع موفقیت خود را درون then قرار می‌دهیم و نام یا تعریف تابع شکست خود را درون catch.

خب! البته میتونیم بدون این ها هم تابع های موفقیت و شکست خود را تعریف کنیم.

اصلا برنامه نویس ها اهل عمل‌اند؛ یه مثال ببینیم:

///ساخت یک شی پرامیس
let p = new Promise(executor);
//تعریف تابع مشخص شده
function executor(resolve, reject) {
  if (success) {
    resolve();
  } else {
    reject();
  }
}
//تعریف دو فانکشن موفقیت و شکست
p.then(onFullfilled, onRejected);
function onFullfilled() {
  //code
}
function onRejected() {
  //code
}

با catch و then چطوری میشه پس؟

///ساخت یک شی پرامیس
let p = new Promise(executor);
//تعریف تابع مشخص شده
function executor(resolve, reject) {
  if (success) {
    resolve();
  } else {
    reject();
  }
}
//then و catch تعریف تابع موفقیت و شکست درون
p.then(function onFullfilled() {
  //code
}).catch(function onRejected() {
  //code
});

حتما الان دارید با خودتون میگید:

بهتر این مقاله رو ببندم و برم، قبل از اینکه از این گیج تر شم اما… نه

بیایین یه کد call back فانکشن و با هم ببینیم انقدر ازش حرف زدیم:

پرامیس

شما دوست دارید این و بخونید؟ حداقل من که نه!

پس بیایید به پرامیس بیشتر فکر کنیم.

و پارامیس برای این کد به مانند خانه تکانی مادرها درست یک هفته قبل از عید می‌ماند.

فکر کنم مثال دوم شما رو ترغیب کرده باشه برای اطلاعات بیشتر یک سری به رفرنس‌های ما بزنید:

Freecodecamp

Mozila

W3school

 

اشتراک گذاری:
برچسب ها: Callback Functionfront_endJavascriptnewsPromiseاستارت برنامه نویسیپرامیس
درباره Fatemeh Satouri

{ "name" : "Fatemeh Satouri", "Skill" : ["coding", "User interface design"], "Abot Me" : "The war between a designer and a programmer in me goes on forever" }

نوشته های بیشتر از Fatemeh Satouri

مطالب زیر را حتما مطالعه کنید

حرفه ای 1
استاندارد های فنی حرفه ای برای حوزه وب
سازمان فنی و حرفه‌ای یکی از معتبرترین مراکز ارائه‌دهنده مدارک حرفه‌ای در ایران هست. بیشتر...
Object in JavaScript
2 روش ساخت آبجکت (object) در جاوا اسکریپت
object چیست؟ آبجکت یک نوع داده کلید و مقدار (key-value) هست. در نظر بگیرید که...
array
آرایه (array) در جاوا اسکریپت و 4 روش تغییر عضو های آرایه
آرایه (array) چیست؟ بیاید به زبان ساده و یک مثال دنیای واقعی بهش نگاه کنیم....
numbers
عدد (number) در جاوا اسکریپت و 2 نوع اصلی و مهم اعداد
عدد (number) در برنامه نویسی چیست؟ اعداد در برنامه نویسی، یکی از مهمترین انواع داده...
string
رشته (string) چیست و 3 روش پیاده سازی آنها
رشته (string) چیست؟     string یک نوع داده در برنامه نویسی هست. این نوع...
variables
متغییر ها (variables) در جاوا اسکریپت و 3 نوع متغییر ها
متغییر (variable) چیست؟ متغیر (Variable) موضوعی هست که به یک مکان خاص در حافظه کامپیوتر...

6 دیدگاه

به گفتگوی ما بپیوندید و دیدگاه خود را با ما در میان بگذارید.

  • مجید کارگر گفت:
    8 خرداد 1403 در 9:59 ق.ظ

    خیلی مفید و کامل بود و مطلب اصلی به درستی بیان شده بود.

    پاسخ
  • مهسا گفت:
    29 دی 1402 در 1:42 ق.ظ

    جالب بود مرسی از مطلب مفیدتون 🤩

    پاسخ
  • YoYo! گفت:
    23 دی 1402 در 12:58 ق.ظ

    عکس اول چیه ؟

    پاسخ
    • Fatemeh Satouri گفت:
      28 دی 1402 در 3:48 ق.ظ

      سلام دوست عزیز. سعی کردم در این تصویر با یک مثال نزدیک به واقعیت ناخوانایی کال بک فانکشن های تو در تو را نشان دهم.

  • محمد گفت:
    16 دی 1402 در 12:40 ب.ظ

    اگر اینقدر پیچیده هست، چرا کالبک فانکشن استفاده میشه اصلاً؟؟!

    پاسخ
    • Fatemeh Satouri گفت:
      17 دی 1402 در 2:29 ق.ظ

      سلام.
      فکر کنم این سایت جواب شما رو بده:
      https://makimo.com/blog/callbacks-vs-promises-in-javascript/#:~:text=Callbacks%20are%20commonly%20used%20in,grained%20control%20over%20operation%20ordering.

      مرسی از دقتتون.

دیدگاهتان را بنویسید لغو پاسخ

جستجو برای:
نوشته‌های تازه
  • استاندارد های فنی حرفه ای برای حوزه وب
  • 2 روش ساخت آبجکت (object) در جاوا اسکریپت
  • آرایه (array) در جاوا اسکریپت و 4 روش تغییر عضو های آرایه
  • عدد (number) در جاوا اسکریپت و 2 نوع اصلی و مهم اعداد
  • رشته (string) چیست و 3 روش پیاده سازی آنها
اطلاعات تماس
  • 02191030701
  • khateri.amirhossein@yahoo.com
فهرست سفارشی
  • صفحه اصلی
  • تماس با ما
  • حساب کاربری من
  • درباره ما
  • سبد خرید
  • لیست دوره های مگادمی

تمامی حقوق برای آکادمی آنلاین مگادمی محفوظ می باشد.
ورود ×
ورود با کد تایید
ارسال مجدد کد تایید(00:60)
حساب کاربری ندارید؟
عضویت

ارسال مجدد کد تایید (00:60)
بازگشت به صفحه ورود

ورود

رمز عبور را فراموش کرده اید؟

ارسال مجدد کد تایید (00:60)

هنوز عضو نشده اید؟ عضویت در سایت