JavaScript Taymerlar (Timeouts)
setTimeout() metodi belgilangan vaqtdan keyin funksiyani bir marta ishga tushirish (rejalashtirish) uchun ishlatiladi.
setTimeout() Metodi
setTimeout() asinxron amal hisoblanadi. U brauzerning asosiy oqimini to'xtatib qo'ymasdan, fonda vaqt sanaydi.
setTimeout() bilan ishlash
Siz funksiyani va qancha kechikish (millisoniyalarda) kerakligini ko'rsatishingiz mumkin:
Misol
setTimeout(myFunction, 3000)
function myFunction() {
console.log('3 soniyadan keyin chiqdi!')
}Yuqoridagi misolda myFunction argument sifatida yuborilmoqda. 3000 esa 3 soniyaga teng (1000ms = 1s).
Eslatma
Funksiyani argument sifatida yuborganda, qavslardan foydalanmang.
- To'g'ri:
setTimeout(myFunction, 3000); - Noto'g'ri:
setTimeout(myFunction(), 3000);(bu funksiyani darhol ishga tushirib yuboradi).
Anonim funksiyalar bilan ishlatish
Funksiya nomini yuborish o'rniga, butun bir funksiyani o'sha yerning o'zida yozib ketish ham mumkin:
Misol
setTimeout(function () {
myFunction('Salom, dunyo!')
}, 3000)
function myFunction(value) {
console.log(value)
}Takrorlanuvchi jarayonlar: setInterval()
setInterval() metodi funksiyani har bir belgilangan vaqt oralig'ida takroran ishga tushiradi.
Misol: Har soniyada vaqtni ko'rsatish
setInterval(showTime, 1000)
function showTime() {
let d = new Date()
console.log(d.getHours() + ':' + d.getMinutes() + ':' + d.getSeconds())
}Farqi nimada?
setTimeout— bir marta ishlaydi.setInterval— to'xtatilmaguncha takrorlanaveradi.
Taymerlarni to'xtatish
Taymerlarni to'xtatish uchun clearTimeout() va clearInterval() metodlaridan foydalaniladi. Buning uchun taymer yaratayotganda uni o'zgaruvchiga saqlab olish kerak:
let myTimer = setTimeout(myFunc, 3000)
clearTimeout(myTimer) // To'xtatish