Callback en basit anlatımla bir metot değişkenidir. En küçük iş yapma birimimiz olan metotlara parametre olarak bir metot verebiliyoruz. Parametre geçilen metot içerisinde bize esneklik kazandırıyor. Belirli durumlarda bu metodu tetikleyebiliriz. Ayrıca JavaScript senkron yapıdadır. Buna farklı bir yazımda değineceğim. Bir HTML sayfası sıralı (senkron) olarak yüklenmekte. JavaScript kodlarımız da sıralı olarak yükleniyor. Gerek programlama dilini öğrenirken gerekse de basit kodlarımızda sıralı fonksiyonlar işimizi görüyor fakat bir metodun bir süreci beklemesi asenkron bir işlemdir. Dosya yükleme işlemleri, servislerden response beklenmesi... Asenkron işlemlerin olabileceği durumlarda parametre olarak bir fonksiyona karşılık gelecek isim geçiyorum. Fonksiyonumuzun çağrıldığı yerde bu isme karşılık fonksiyon veya fonksiyon adı veriyoruz. İşlemler tamamlandığı zaman vermiş olduğumuz fonksiyon veriyi karşılıyor. Callback olarak belirtilen fonksiyonda veriyi karşıyalabileceğimiz gibi callback olarak belirtilen fonksiyonun çalışması için de kullanabiliriz. Asekron herhangi bir işlem olmayabilir. Aşağıdaki kod buna örnektir. Parametre olarak verdiğim fonksiyonu tetiklemiş oldum.
function printConsole(data){
console.log("Value: "+data)
//output Value: end
}
function getData(url,callback){
//url'ye request gönderilip response ile data alınır. Ne kadar zaman alacağı belirsiz.
callback("end")
}
getData("url",printConsole)
Yorumlar
0 yorum