Callback nedir JavaScript ?

Ilayda

New member
Callback Nedir, Ne İşe Yarar ve Neden Herkes Sürekli Çağırıyor?

Selam forumdaşlar!

Hadi gelin, bugün JavaScript dünyasının en sevilen, en çok çağrılan, bazen de "yine mi o?" dedirten karakterine yakından göz atalım. Evet, hepimizin yaşamında küçük bir rol oynayan ama gözden kaçan o gizli kahraman… Callback! Hepimizin hayatına bir şekilde dokunan, JavaScript'in bu gizemli varlığı ile tanışmaya ne dersiniz? Öncelikle şunu söyleyeyim: Eğer "callback" dediğimde aklınıza eski okul arkadaşınızın düğününde yaptığı dans geliyorsa, hemen JavaScript dünyasına adım atmaya başlayın, yoksa kaybedecek çok şeyiniz olabilir!

Peki, Callback nedir? Nerelerde kullanılır? Ve neden sürekli bir şekilde çağrılır? Hadi şimdi, işin içine biraz mizah katıp bakalım.

Callback: Stratejik Bir Yöntem mi, Yoksa Bir İlişki Kurma Çabası mı?

Bir olaya nereden bakarsanız, o kadar farklı yorumlar çıkar. Şimdi, erkeklerin çözüm odaklı, kadınların ise ilişki odaklı yaklaşımlarını JavaScript üzerinden ele alalım. Haydi bakalım, bakalım hangi perspektif bizi güldürtecek!

Erkekler Tarzı: "Bir Çağrı, Bir Çözüm!"

Erkeklerin bir problem çözme tarzı vardır, hatırlayın. Bir konu ile karşılaşırsınız, hemen çözümü bulmaya çalışırlar. Oysa kadınlar için bu süreç biraz daha farklıdır, önce bir çözüm üzerine konuşulur, sonra yavaşça o çözüm üzerinde insanlara nasıl fayda sağlayabileceği üzerinden fikirler geliştirilir.

JavaScript'teki callback de tam böyle bir şey. Bir iş, bir fonksiyon çalıştırılır ve o işin sonucu alındığında başka bir işlem yapılır. Bir olayın sonrasında bir çözüm beklersiniz. Callback fonksiyonu işte tam burada devreye giriyor. Mesela, kullanıcı bir butona tıklarsa, bu tıklama olayını bir callback fonksiyonu yakalar. Ne zaman? Tabii ki, butona tıklandıktan sonra. İşte bu tam erkeklerin çözüm odaklı yaklaşımı gibi. Hızlıca çağırılır, çalışır, çözüm sağlanır.

Kısacası, callback bir işin sonucunu beklerken hemen çözüm üreten, stratejik bir yöntemdir.

```javascript

function yapilacakIs(){

console.log("Bütün işler yapıldı!");

}

function callback(is){

console.log("Sonuç geldi, işlemi başlatıyorum");

is(); // yapilacakIs fonksiyonu çağrıldı

}

callback(yapilacakIs); // "Sonuç geldi, işlemi başlatıyorum" der ve "Bütün işler yapıldı!"yı yazdırır

```

İşte burada callback hemen devreye giriyor ve çözümü başlatıyor. Ama unutmayın, callback bir çağrıdır, sadece işi yapar ve sonra gider. Gerçekten ilişkilerdeki gibi "Sonsuza kadar bağ kurma" gibi bir amacı yoktur. Tek amacı, görevi yerine getirmektir.

Kadınlar Tarzı: "Bir İlişki Kurmalı, Birlikte Çalışmalı"

Şimdi de işin diğer yüzüne geçelim. Kadınların genel yaklaşımını düşünün: Birini aradığınızda, önce nasıl olduğunu sorar, sonra işler hakkında sohbet eder, bir ilişki kurar ve sonrasında iş yapmaya başlar. İşte JavaScript'teki callback, bu anlayışa çok benziyor.

Kadınların yaklaşımı daha empatiktir. Bir olaydan önce ve sonra, nasıl daha verimli bir şey yapılabileceğini sürekli düşünürler. Yani callback fonksiyonu, bir ilişki kurma çabası gibidir. Bir olay gerçekleşmeden önce bekler, işler bitince, sizi anlayarak devreye girer.

Örneğin, bir kullanıcı bir formu doldurduğunda, callback, bu olaydan önce verileri alacak ve ona göre bir şey yapacaktır. Tıpkı, bir kadın bir ilişkide her şeyi düşünürken, bir işin gerçekleşmesini istemesi gibi.

```javascript

function formDoldurulacak() {

console.log("Form dolduruldu!");

}

function callback(form) {

console.log("Veriler alındı, bakalım form tamam mı?");

form(); // formDoldurulacak fonksiyonu çağrıldı

}

callback(formDoldurulacak); // "Veriler alındı, bakalım form tamam mı?" der ve "Form dolduruldu!" yazdırır

```

Gördüğünüz gibi, callback burada da çözüm arayan bir danışman gibi devreye giriyor. Zamanla doğru ilişkiyi kurmak için sürekli olarak çalışıyor ve işlemi sonunda başlatıyor. Hızlıca çözüm üretmek yerine, her şeyi dengeli bir şekilde ele alıyor.

Callback ve Asenkron JavaScript: Her Zaman Hazır ve Beklemede!

Şimdi, "beklemek" kısmına gelirsek, callback ve asenkron JavaScript ilişkisi gerçekten enteresan bir noktaya varıyor. JavaScript, tıpkı bir ilişki gibi, bazen "beklemeyi" kabul eder. Aslında JavaScript'in en sevdiği şeylerden biri, sabırlı olmak ve bir şeyin olmasını beklemektir.

Asenkron işlem yaparken, mesela bir API'den veri çekiyorsunuz. Bu süreçte, callback devreye girer ve size bir çözüm sunmak için bekler. Ama unutmayın, callback burada sadece çözümü sunmakla kalmaz, aynı zamanda süreç boyunca olayları takip eder, gerektiğinde müdahale eder ve sonunda "İşte çözüm, tamam!" diyerek işini bitirir.

```javascript

function veriAl() {

setTimeout(function () {

console.log("Veri alındı!");

}, 2000);

}

function callback(veri) {

console.log("Veriyi bekliyorum...");

veri(); // veriAl fonksiyonu çalışır

}

callback(veriAl); // 2 saniye sonra "Veri alındı!" yazdırır

```

Görüyorsunuz değil mi? Bekleyiş, bir ilişki gibi. Bir süre sabırla bekliyorsunuz ve sonunda çözüm geliyor.

Sonuç: Callback, Hem Stratejik Hem de İlişkisel!

Sonuç olarak, callback, hem erkeklerin çözüm odaklı yaklaşımını hem de kadınların ilişki odaklı yaklaşımını harmanlayarak mükemmel bir işlevsellik sunar. Bir yanda hızlıca çözüm üreten, bir yanda ise her adımı dikkatle takip eden bir yöntem… Hani bazen "daha iyisi olabilir miydi?" diye düşündürse de, callback'in hayatımızdaki rolü gerçekten vazgeçilmez.

E şimdi forumdaşlar, işin komik tarafı şu: Aslında callback, her şeyin bir zamanlaması olduğunun farkına varmamızı sağlar. Hem erkeklerin çözüm üretme tarzına benzer bir hızda çalışır hem de kadınların duygusal ve empatetik yaklaşımını birleştirerek olayları zamanında sonuçlandırır.

Peki sizce callback JavaScript'teki en önemli kavram mı? Yoksa başka bir gizli kahraman daha mı var? Yorumlarda buluşalım, fikirlerinizi bekliyorum!