Skip to content

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

js
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

js
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

js
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:

js
let myTimer = setTimeout(myFunc, 3000)
clearTimeout(myTimer) // To'xtatish