İçeriğe geç
parazade

Callback Ne Demek?

Yayın: · Son güncelleme:

Callback Ne Demek? Kısaca

Callback, başka bir fonksiyona parametre olarak verilen ve belirli bir iş bittiğinde ya da bir olay gerçekleştiğinde çağrılan fonksiyondur. Türkçede geri çağırma fonksiyonu olarak da anılır.

Callback nedir?
İçindekiler
  1. Callback ne demek?
  2. Nasıl çalışır?
  3. Callback cehennemi nedir?

Callback ne demek?

Callback, "geri çağırma" anlamına gelir ve başka bir fonksiyona verilen, uygun zamanda o fonksiyon tarafından çalıştırılan fonksiyonu ifade eder. Siz işin nasıl yapılacağını değil, iş bitince ne olacağını tanımlarsınız. Kontrol, işi yapan fonksiyondadır. Bu yüzden callback, JavaScript başta olmak üzere olay odaklı çalışan dillerde ve kütüphanelerde en temel yapı taşlarından biridir.

Nasıl çalışır?

Bir restoranda sipariş verip telefon numaranızı bıraktığınızı düşünün. Yemek hazır olunca sizi ararlar; bu arada başka işlerle ilgilenebilirsiniz. Telefon numarası burada callback'tir. Kodda da benzer biçimde, uzun süren bir işe "bitince bunu çağır" diye bir fonksiyon verirsiniz.

JavaScript'te setTimeout(() => console.log("Hazır"), 2000) satırı buna örnektir. Tarayıcı iki saniye bekler, ardından verdiğiniz fonksiyonu çalıştırır. Buton tıklamalarını dinleyen addEventListener da aynı mantıkla çalışır.

Kullanıcı butona her bastığında tarayıcı, sizin verdiğiniz fonksiyonu yeniden çağırır. Node.js'te dosya okuyan eski tarz fonksiyonlar da sonucu ve olası hatayı callback'e parametre olarak verir.

Callback cehennemi nedir?

Birbirine bağlı birkaç işlem art arda yapılacaksa callback'ler iç içe geçer. Kullanıcıyı getir, sonra siparişlerini getir, sonra her siparişin kargo durumunu getir dediğinizde kod sağa doğru kayan bir piramide döner. Bu yapı hem okumayı hem hata yakalamayı zorlaştırır.

Modern JavaScript bu sorunu Promise ve async/await ile çözer. Yeni bir projede iç içe üç callback yazdığınızı fark ederseniz, bu yapılardan birine geçmenin zamanı gelmiş demektir.

Sıkça Sorulan Sorular

Callback fonksiyonu nedir?

Callback fonksiyonu, "işin bitince bunu çalıştır" diye başka bir fonksiyona teslim ettiğiniz fonksiyondur. Çağıran taraf onu doğru anda kendisi çalıştırır.

Callback cehennemi nasıl önlenir?

İç içe callback yerine Promise ve async/await kullanmak en yaygın çözümdür. Kodu küçük, adlandırılmış fonksiyonlara bölmek de okunabilirliği artırır.

İlgili terimler