پروژه اولیه
پروژه اولیه را از این لینک دانلود کنید. ساختار فایلهای پروژه به صورت زیر است.
Promise
└── main.js
جزئیات
در این مسئله، باید مراحل تهیه غذا با استفاده از Promise
پیادهسازی شود، در نظر داشته باشید که ترتیب عملیاتهای انجام شده اهمیت خواهند داشت.
تابع doneMessage
این تابع وظیفه نمایش مستقیم یک پیغام در کنسول را خواهد داشت که شامل متن زیر خواهد بود و همیشه به عنوان یک callback fucntion
در توابع پیش رو استفاده خواهد شد.
[prevStep] done, next step ...
prevSteps title : preparing, making, serving and eating
نکته: خروجی تمام توابع پیش رو یک 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
نکات
- ترتیب نمایش پیام ها در کنسول اهمیت خواهد داشت.
- این مسئله باید با استفاده از
Promise
پیادهسازی شود. - در نهایت پس از اتمام عملیات های تعریف شده باید مقدار
process is done
در کنسول نمایش داده شود. - شما فقط مجاز به تغییر فایل
main.js
هستید.
آنچه باید آپلود کنید
فایل main.js
نهایی را ذخیره کنید و بهصورت تکی آپلود کنید. یا اگر قصد دارید بهصورت فایل فشرده ارسال کنید، ساختار فایل باید بهصورت زیر باشد:
[your-zip-file-name].zip
└── main.js
ارسال پاسخ برای این سؤال