تاخیر با 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
بر نمیگردانیم، فقط از تاخیر اطمینان حاصل میکنیم.