crazy_coder
Moderatör
- Katılım
- 20 Şub 2026
- Mesajlar
- 204
- Tepkime puanı
- 0
- Puanları
- 16
1. Senkron vs. Asenkron Akış
JavaScript tek bir iş parçacığında (single-threaded) çalışır. Bazı işlemler (veritabanından veri çekmek, bir dosya okumak veya bir API isteği atmak) zaman alır. Eğer JavaScript bu işlemin bitmesini bekleseydi, o sırada sayfa donardı.
Callbackler burada devreye girer: "Sen bu işi yapmaya başla, işin bittiğinde ise şu fonksiyonu (callback) çalıştır."
2. Callback Fonksiyonu Nasıl Yazılır?
Bir callback fonksiyonu oluşturmak için özel bir anahtar kelimeye ihtiyaç yoktur. Sadece fonksiyonu bir parametre olarak geçmeniz yeterlidir.
JavaScript:
function veriyiIsle(veri, callback) {
console.log("Veri işleniyor: " + veri);
// İşlem bittikten sonra geri çağırımı çalıştırıyoruz
callback();
}
function tamamlandiMesaji() {
console.log("İşlem başarıyla tamamlandı!");
}
// Fonksiyonu çağırırken ikinci parametre olarak diğer fonksiyonu veriyoruz
veriyiIsle("Kullanıcı Listesi", tamamlandiMesaji);
3. Neden Callback Kullanırız?
[]Asenkron Yönetim: Zaman alan işlemlerin (timer, fetch, event listener) sonucunu bekleyip, sonuç geldiğinde işlem yapmak için.
[]Kodun Yeniden Kullanılabilirliği: Bir fonksiyonun mantığını sabit tutup, sonucunda ne yapacağını dışarıdan belirleyebiliriz.- Olay Yönetimi (Event Handling): Kullanıcı bir butona tıkladığında ne olacağını belirlemek bir callback işlemidir.
JavaScript:
// Gerçek dünyadan bir örnek: Dizilerde filter metodu
const sayilar = [1, 2, 3, 4, 5, 6];
// Burada (sayi => sayi > 3) bir callback fonksiyonudur
const buyukSayilar = sayilar.filter(sayi => sayi > 3);
console.log(buyukSayilar); // [4, 5, 6]
4. Callback Hell (Geri Çağırım Cehennemi)
Callback'ler çok güçlüdür ancak iç içe çok fazla asenkron işlem yapmanız gerektiğinde kod okunamaz hale gelir. Bu duruma yazılım dünyasında "Callback Hell" veya "Pyramid of Doom" denir.
JavaScript:
// Callback Hell Örneği:
adim1(() => {
adim2(() => {
adim3(() => {
console.log("Sonunda bitti!");
});
});
});
Özet Karşılaştırma
| Özellik | Klasik Fonksiyon Çağrısı | Callback Fonksiyonu |
|---|---|---|
| Çalışma Zamanı | Hemen (Satır geldiğinde) | İşlem bittiğinde veya tetiklendiğinde |
| Esneklik | Düşük (Sabit işlem) | Yüksek (Dinamik işlem) |
| Kullanım Alanı | Hesaplamalar, mantık yürütme | API istekleri, Olaylar, Zamanlayıcılar |
Sonuç
Callback'ler, JavaScript'in asenkron doğasının temel taşıdır. Onlar olmasaydı, bir API'den veri gelene kadar tarayıcımız kilitlenir veya bir butona tıklandığında ne yapacağımızı tarayıcıya anlatamazdık. Callback mantığını anlamak, Promise ve Async/Await gibi ileri seviye konuları kavramanın anahtarıdır.