قول چیست؟
قول چیست؟
وقتی توسعهدهندگان تصمیم میگیرند یک فناوری یا الگوی جدید را یاد بگیرند، معمولاً اولین قدم آنها «کد را به من نشان بده!» است. برای ما کاملاً طبیعی است که ابتدا از پا بپریم و در حین حرکت یاد بگیریم.
اما معلوم می شود که برخی از انتزاعات تنها در API ها گم می شوند. Promises یکی از آن ابزارهایی است که میتواند به طرز دردناکی از نحوه استفاده شخصی از آن آشکار باشد، خواه درک کند که برای چیست و در مورد چیست، در مقابل یادگیری و استفاده از API.
بنابراین قبل از اینکه کد Promise را نشان دهم، می خواهم به طور کامل توضیح دهم که Promise واقعاً از نظر مفهومی چیست. من امیدوارم که پس از آن شما را بهتر راهنمایی کند، همانطور که تئوری Promise را در جریان همگام خود بررسی می کنید.
با در نظر گرفتن این موضوع، بیایید به دو قیاس مختلف برای چیستی یک وعده نگاه کنیم
ارزش آتی
این سناریو را تصور کنید: من به سمت پیشخوان یک رستوران فست فود می روم و یک چیزبرگر سفارش می دهم. 1.47 دلار به صندوقدار می دهم. با ثبت سفارش و پرداخت هزینه آن، درخواست بازگشت ارزش (چیزبرگر) را داده ام. من یک معامله را شروع کردم.
اما اغلب، شسبرگر فوراً برای من در دسترس نیست. صندوقدار به جای چیزبرگرم چیزی به من می دهد: رسیدی که شماره سفارش روی آن است. این شماره سفارش یک وعده IOU (“من به شما مدیونم”) است که تضمین می کند که در نهایت چیزبرگرم را دریافت کنم.
بنابراین من روی رسید و شماره سفارش خود نگه می دارم. می دانم که نشان دهنده چیزبرگر آینده من است، بنابراین دیگر لازم نیست نگران آن باشم – جدا از اینکه گرسنه هستم!
در مدتی که منتظر هستم، میتوانم کارهای دیگری انجام دهم، مثلاً برای دوستی پیامکی بفرستم که میگوید: “هی، میتوانی برای ناهار به من ملحق شوی؟ من میروم چیزبرگر بخورم.”
من قبلاً در مورد چیزبرگر آینده ام استدلال می کنم ، اگرچه هنوز آن را در دست ندارم. مغز من قادر به انجام این کار است زیرا با شماره سفارش به عنوان یک مکان نگهدارنده چیزبرگر رفتار می کند. مکاندار اساساً زمان ارزش را مستقل میکند. این یک ارزش آینده است.
بالاخره می شنوم: «فرمان 113!» و من با خوشحالی با قبض در دست به سمت پیشخوان برگشتم. رسیدم را به صندوقدار می دهم و در عوض چیزبرگرم را می گیرم.
به عبارت دیگر، هنگامی که ارزش آینده من آماده شد، من ارزش-وعده خود را با خود ارزش عوض کردم.
اما یک نتیجه ممکن دیگر وجود دارد. آنها با شماره سفارش من تماس می گیرند، اما وقتی می روم چیزبرگرم را پس بگیرم، صندوقدار با تأسف به من می گوید: “متاسفم، اما به نظر می رسد همه چیزبرگر ما تمام شده است.” با کنار گذاشتن ناامیدی مشتری از این سناریو برای لحظهای، میتوانیم ویژگی مهم ارزشهای آینده را ببینیم: آنها میتوانند موفقیت یا شکست را نشان دهند.
هر بار که چیزبرگر سفارش میدهم، میدانم که یا بالاخره یک چیزبرگر میگیرم یا خبر غم انگیز کمبود چیزبرگر را میگیرم و باید برای ناهار چیز دیگری پیدا کنم.
توجه: در کد، همه چیز به این سادگی نیست، زیرا از نظر استعاری ممکن است هرگز شماره سفارش صدا زده نشود، در این صورت ما به طور نامحدود در یک حالت حل نشده باقی میمانیم. بعداً به بررسی آن پرونده خواهیم پرداخت.
ارزش ها در حال حاضر و بعد
همه اینها ممکن است از نظر ذهنی بیش از حد انتزاعی به نظر برسد که در کد شما اعمال نشود. پس بیایید دقیق تر باشیم.
قوانین ارسال دیدگاه در سایت