بازگشت به درس

تاخیر با Promise

تابع داخلی setTimeout از کال‌بک‌ها استفاده می‌کند. یک جایگزین مبتنی بر Promise ایجاد کنید.

تابع delay(ms) باید یک Promise برگرداند. این وعده باید پس از ms میلی‌ثانیه حل‌وفصل (resolve) شود، به طوری که می‌توانیم then. را به آن اضافه کنیم، مانند این:

function delay(ms) {
  // کد شما
}

delay(3000).then(() => alert('بعد از 3 ثانیه اجرا می‌شود'));
function delay(ms) {
  return new Promise(resolve => setTimeout(resolve, ms));
}

delay(3000).then(() => alert('بعد از 3 ثانیه اجرا می‌شود'));

لطفاً توجه داشته باشید که در این تمرین resolve بدون آرگومان فراخوانی می‌شود. ما هیچ مقداری را از delay بر نمی‌گردانیم، فقط از تاخیر اطمینان حاصل می‌کنیم.