setTimeout ve setInterval
- Node.js kursu
- Orta seviye
- Ders 98/116
- 5 dk
setTimeout ve setInterval ile zamanlayıcı öğrenirsin.
setTimeout
Bir fonksiyonu belirli bir gecikme sonrasında çalıştırmak için setTimeout kullanırsın. İki parametre alır: çağrılacak fonksiyon ve milisaniye cinsinden gecikme.
Örnek: setTimeout(() => console.log("Merhaba"), 1000); bir saniye sonra "Merhaba" yazdırır. setTimeout bir zamanlayıcı kimliği (timer id) döndürür; clearTimeout(id) ile çağrıyı iptal edebilirsin. Gecikme 0 bile olsa callback senkron koddan sonra çalışır; bu, olay döngüsünün (event loop) nasıl çalıştığını gösterir. Zamanlayıcıyı iptal etmek için const id = setTimeout(...); clearTimeout(id); yazarsın. Zamanlayıcılar arka planda çalışır; ana kodu durdurmaz.
setInterval ve clearInterval
Bir fonksiyonu belirli aralıklarla tekrar tekrar çalıştırmak için setInterval kullanırsın. setInterval(fn, 1000) fonksiyonu her saniye çağırır. Durdurmak için clearInterval(id) gerekir.
Örnek: let sayac = 0; const id = setInterval(() => { sayac++; console.log(sayac); if (sayac >= 3) clearInterval(id); }, 100);. Bu, 100 milisaniyede bir sayacı artırır; 3'e ulaşınca durur. setInterval bir kimlik döndürür; bu kimliği clearInterval'e geçirerek döngüyü kırarsın. Aksi halde zamanlayıcı sonsuza dek çalışır ve süreç kapanmaz. Bu yüzden her setInterval çağrısında bir durdurma koşulu tasarlamak iyi bir alışkanlıktır.
Uygulama setTimeout ile sıralı çıktı yaz
setTimeout(() => console.log("Bitti"), 0); ile bir zamanlayıcı kur. console.log("Başlatıldı") ile senkron çıktı yaz. Çıktı sırasını gör.
Başlangıç kodu
// setTimeout ile "Bitti" yazdır
// buraya yaz
// "Başlatıldı" yazdır
// buraya yazÖrnek çözüm
setTimeout(() => console.log("Bitti"), 0);
console.log("Başlatıldı");Beklenen çıktı
Başlatıldı Bitti
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 setTimeout çağrısını tamamla
setTimeout(() => console.log("Hazır"), ____);
setTimeout(() => console.log("Hazır"), 1000);
Açıklama: 1000 milisaniye 1 saniyedir.
2 setInterval ne döndürür?
const id = setInterval(fn, 1000);- Bir Promise
- Zamanlayıcı kimliği Doğru cevap
- Bir Date nesnesi
- Hiçbir şey
Açıklama: setInterval bir zamanlayıcı kimliği döndürür.
3 İşlevi aracına eşle
| Kavram | Anlamı |
|---|---|
setTimeout |
Tek seferlik gecikme |
setInterval |
Tekrarlayan aralık |
clearTimeout |
Tek seferlik iptal |
clearInterval |
Tekrarlayan iptal |