JavaScript CallBack İşlevi

Bu eğiticide, örnekler yardımıyla JavaScript geri çağırma işlevleri hakkında bilgi edineceksiniz.

Bir işlev, çağrıldığında belirli bir görevi yerine getiren bir kod bloğudur. Örneğin,

 // function function greet(name) ( console.log('Hi' + ' ' + name); ) greet('Peter'); // Hi Peter

Yukarıdaki programda, greet()işleve argüman olarak bir dizgi değeri iletilir .

JavaScript'te, bir işlevi bir işleve argüman olarak da iletebilirsiniz. Başka bir işlevin içinde bağımsız değişken olarak iletilen bu işleve geri arama işlevi adı verilir. Örneğin,

 // function function greet(name, callback) ( console.log('Hi' + ' ' + name); callback(); ) // callback function function callMe() ( console.log('I am callback function'); ) // passing function as an argument greet('Peter', callMe);

Çıktı

 Merhaba Peter, geri arama işleviyim

Yukarıdaki programda iki işlev vardır. greet()İşlevi çağırırken , iki argüman (bir dizge değeri ve bir işlev) iletilir.

callMe()İşlev bir geri çağrı işlevidir.

Geri Arama İşlevinin Yararı

Geri arama işlevi kullanmanın yararı, önceki bir işlev çağrısının sonucunu bekleyip başka bir işlev çağrısı yürütebilmenizdir.

Bu örnekte, setTimeout()sunucudan gelen veriler gibi çalıştırılması zaman alan programı taklit etmek için yöntemi kullanacağız .

Örnek: setTimeout () ile program

 // program that shows the delay in execution function greet() ( console.log('Hello world'); ) function sayName(name) ( console.log('Hello' + ' ' + name); ) // calling the function setTimeout(greet, 2000); sayName('John');

Çıktı

 Merhaba John Merhaba dünya

Bildiğiniz gibi setTimeout () yöntemi, belirtilen süreden sonra bir kod bloğu yürütür.

Burada greet()işlev 2000 milisaniye ( 2 saniye) sonra çağrılır . Bu bekleme sırasında sayName('John');yürütülür. Bu nedenle Hello John, Hello world'dan önce basılmıştır.

Yukarıdaki kod eşzamansız olarak çalıştırılır (ikinci işlev; sayName()birinci işlevin greet()tamamlanmasını beklemez ).

Örnek: Geri Arama İşlevini Kullanma

Yukarıdaki örnekte, ikinci işlev ilk işlevin tamamlanmasını beklemez. Ancak, bir sonraki ifade çalıştırılmadan önceki işlev çağrısının sonucunu beklemek isterseniz, bir geri arama işlevi kullanabilirsiniz. Örneğin,

 // Callback Function Example function greet(name, myFunction) ( console.log('Hello world'); // callback function // executed only after the greet() is executed myFunction(name); ) // callback function function sayName(name) ( console.log('Hello' + ' ' + name); ) // calling the function after 2 seconds setTimeout(greet, 2000, 'John', sayName);

Çıktı

 Merhaba dünya Merhaba John

Yukarıdaki programda kod eşzamanlı olarak yürütülür. sayName()Fonksiyon için bir bağımsız değişken olarak geçirilir greet()fonksiyonu.

setTimeout()Yöntemi çalıştırılır greet()sonra işlevini 2 saniye. Bununla birlikte, sayName()işlev , işlevin yürütülmesini bekler greet().

Not : Geri arama işlevi, zaman alan bir sonucu beklemeniz gerektiğinde faydalıdır. Örneğin, bir sunucudan gelen veriler, çünkü verilerin gelmesi zaman alır.

Ilginç makaleler...