CodeBlanks Logo Icon CodeBlanks

setTimeout ve setInterval

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

index.js
// setTimeout ile "Bitti" yazdır
// buraya yaz

// "Başlatıldı" yazdır
// buraya yaz

Örnek çözüm

index.js
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

Soru
setTimeout(() => console.log("Hazır"), ____);
Cevap
setTimeout(() => console.log("Hazır"), 1000);

Açıklama: 1000 milisaniye 1 saniyedir.

2 setInterval ne döndürür?

index.js
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

Orta seviye bölümündeki tüm dersler