Navbatga qo'yish: setTimeout va setInterval
Biz funksiyalarni hozirning o'zida bajarilishini hohlamasligimiz mumkin. Balki biroz vaqtdan so'ng shu funksiyalarni bajarilishiga ehtiyoj tug'ilishi mumkin. Bu narsa "qo'ng'iroqni kechiktirish" deyiladi.
setTimeout
biror belgilangan vaqtdan keyin funksiyani chaqirishga imkon beradisetInterval
funksiyani belgilangan interval oralig'ida to'xtovsiz bajarilishini anglatadi.
setTimeout
let timerId = setTimeout(func|code, [delay], [arg1], [arg2], ...)
delay
- kechiktiriladigan vaqt (milliysekundlarda 1000 ms = 1s, default holatida 0 ga teng)
arg1, arg2
- funksiya uchun argumentlar
function sayHi(phrase, who) {
alert( phrase + ', ' + who );
}
Agar birinchi argument string bo'lsa Javascript undan funksiya yasaydi. Shuningdek, quyidagi kod ham ishlaydi
Ammo string lar ishlatish tavsiya etilmaydi. Uning o'rniga arrow funksiya ishlatgan maqul.
Quyidagicha ishlatish noto'g'ri hisoblanadi.
Javascript odatda funksiyaga reference kutadi. sayHi() esa funksiyani ishga tushirib yuboradi.
clearTimeout bilan bekor qilish
setTimeout unique bo'lgan "timer Identifier" qaytaradi. Va u yordamida setTimeoutni bekor qilish mumkin.
let timerId = setTimeout(() => alert("never happens"), 1000);
alert(timerId); // timer identifier
clearTimeout(timerId);
alert(timerId); // same identifier (doesn't become null after canceling)
alert
dagi taymer identifikatori brauzerda raqamdir. Boshqa muhitlarda bu boshqa narsa bo'lishi mumkin. Masalan, Node.js qo'shimcha usullar bilan taymer ob'ektini qaytaradi.
setInterval
setInterval ham bir xil sintaksisga ega
let timerId = setInterval(func|code, [delay], [arg1], [arg2], ...)
setInterval
berilgan vaqt davomida funksiyani ishga tushirib turadi. Uni clearInterval
orqali bekor qilinadi.
// repeat with the interval of 2 seconds
let timerId = setInterval(() => alert('tick'), 2000);
// after 5 seconds stop
setTimeout(() => { clearInterval(timerId); alert('stop'); }, 5000);