دستور پخت


پروژه اولیه🔗

پروژه اولیه را از این لینک دانلود کنید. ساختار فایل‌های پروژه به صورت زیر است.

Promise
└── main.js
Plain text

جزئیات🔗

در این مسئله، باید مراحل تهیه غذا با استفاده از Promise پیاده‌سازی شود، در نظر داشته باشید که ترتیب عملیات‌های انجام شده اهمیت خواهند داشت.

تابع doneMessage🔗

این تابع وظیفه نمایش مستقیم یک پیغام در کنسول را خواهد داشت که شامل متن زیر خواهد بود و همیشه به عنوان یک callback fucntion در توابع پیش رو استفاده خواهد شد.

[prevStep] done, next step ...

prevSteps title : preparing, making, serving and eating
Plain text

نکته: خروجی تمام توابع پیش رو یک Promise به شکل موفقیت آمیز خواهد بود که متن آن برابر با مقدار callback function است.

تابع prepare🔗

این تابع وظیفه آماده‌سازی مواد غذایی را خواهد داشت که ورودی آن دو مقدار خواهد بود، مقدار اول، آرایه‌ای از رشته‌ها که شامل موارد تشکل دهنده غذا خواهد بود و مقدار دوم callback function که باید بعد از مدت زمان مشخص ۵۰۰ میلی‌ثانیه فراخوانی شود.

  • قبل از شروع فرآِیند اصلی تابع باید مقدار preparing stuffs: eggs, tomatoes در کنسول نمایش داده شود.

تابع cooking🔗

این تابع وظیفه پخت و پز غذا را برعهده دارد که ورودی آن یک callback function است که باید بعد از مدت زمان مشخص ۲۰۰۰ میلی‌ثانیه فراخوانی شود.

  • قبل از شروع فرآِیند اصلی تابع باید مقدار making an omelette ... در کنسول نمایش داده شود.

تابع serve🔗

این تابع وظیفه سرو و چیدمان غذا را خواهد داشت که ورودی آن یک callback function است که باید بعد از مدت زمان مشخص ۵۰۰ میلی‌ثانیه فراخوانی شود.

  • قبل از شروع فرآِیند اصلی تابع باید مقدار serving food ... در کنسول نمایش داده شود.

تابع eat🔗

این تابع وظیفه خوردن غذا را خواهد داشت! که ورودی آن یک callback function است که باید بعد از مدت زمان مشخص ۱۰۰۰ میلی‌ثانیه فراخوانی شود.

  • قبل از شروع فرآِیند اصلی تابع باید مقدار eating ... در کنسول نمایش داده شود.

مثال خروجی نهایی🔗

startCooking(["eggs", "tomatoes"]);

preparing stuffs: eggs, tomatoes
preparing done, next step ...
making an omelette ...
making done, next step ...
serving food ...
serving done, next step ...
eating ...
eating done, next step ...
process is done
Plain text

نکات🔗

  • ترتیب نمایش پیام ها در کنسول اهمیت خواهد داشت.
  • این مسئله باید با استفاده از Promise پیا‌ده‌سازی شود.
  • در نهایت پس از اتمام عملیات های تعریف شده باید مقدار process is done در کنسول نمایش داده شود.
  • شما فقط مجاز به تغییر فایل main.js هستید.

آنچه باید آپلود کنید🔗

فایل main.js نهایی را ذخیره کنید و به‌صورت تکی آپلود کنید. یا اگر قصد دارید به‌صورت فایل فشرده ارسال کنید، ساختار فایل باید به‌صورت زیر باشد:

[your-zip-file-name].zip
└── main.js
Plain text