Callback Functions: Geri Çağırım Fonksiyonları Neden Kullanılır?

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!");
});
});
});
Not: Modern JavaScript'te bu karmaşadan kurtulmak için Promises ve Async/Await yapılarını kullanıyoruz.

Özet Karşılaştırma​


ÖzellikKlasik Fonksiyon ÇağrısıCallback Fonksiyonu
Çalışma ZamanıHemen (Satır geldiğinde)İşlem bittiğinde veya tetiklendiğinde
EsneklikDüşük (Sabit işlem)Yüksek (Dinamik işlem)
Kullanım AlanıHesaplamalar, mantık yürütmeAPI 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.
 
Geri
Üst