JavaScriptda setTimeout funksiyasi qanday ishlaydi?
sobes.tech AI
AIdan javob
setTimeout belgilangan millisekundlar soni bilan funksiyani yoki kod bo'lagi bajarilishini rejalashtiradi.
setTimeout chaqirilganda, brauzer (yoki Node.js ishga tushirish muhit) vaqtni o'lchovchi qurilma yaratadi. setTimeout ga berilgan funksiya belgilangan kechikish vaqtidan so'ng callback navbatiga (task queue) qo'yiladi.
JavaScript yagona ipli. Asosiy bajarish ipi (main thread) kodni ketma-ket bajaradi. Asosiy ip tugaganida, u callback navbatini tekshiradi. Agar navbatda funksiyalar bo'lsa (masalan, setTimeout yordamida kechiktirilganlar) va asosiy ip bo'sh bo'lsa, u birinchi funksiyani olib, bajaradi.
Bu setTimeout(fn, 0) funksiyasining darhol bajarilishini kafolatlamaydi. U imkon qadar tez bajariladi, lekin faqat hozirgi kod bajarilishi tugagach.
Sintaksis:
setTimeout(function, milliseconds, param1, param2, ...);
function: Bajarilishi kerak bo'lgan funksiya.milliseconds: Funksiya bajarilishidan oldin o'tadigan millisekundlar soni. Agar o'tkazib yuborilsa, odatda 0 bo'ladi.param1, param2, ...: Qo'shimcha argumentlar, ular funksiyaga chaqirilganda uzatiladi.
Misol:
// "Salom!" 2 soniya o'tgach chiqariladi
setTimeout(function() {
console.log("Salom!");
}, 2000);
// Argumentlar bilan
function showMessage(ism) {
console.log("Salom, " + ism + "!");
}
setTimeout(showMessage, 1000, "Dunyo"); // 1 soniya o'tgach "Salom, Dunyo!" chiqaradi
setTimeout taymer ID raqamini qaytaradi, uni clearTimeout yordamida rejalashtirilgan bajarishni bekor qilish uchun ishlatish mumkin.
clearTimeout bilan foydalanish misoli:
let timerId = setTimeout(function() {
console.log("Bu satr chiqarilmaydi");
}, 3000);
console.log("Vaqt boshlang'ich...");
// Vaqtni bekor qilish
clearTimeout(timerId);
console.log("Vaqt bekor qilindi.");
Muhim nuqtalar:
- Kechikish aniq kafolatlanmaydi, ayniqsa asosiy ipda yuqori yuk bo'lsa. Ko'rsatilgan vaqt minimal kechikish bo'lib, funksiyani callback navbatiga qo'yish uchun kutish vaqti.
- Node.jsda, timerlar voqealar tsikli (event loop) tomonidan boshqariladi, brauzerga o'xshash.