İçeriğe geç

Javascript Callback nedir?

Javascriptte en çok kullanılan yapılardan biri de callback’lerdir. Bu yazıda asenkron fonksiyonları değil sadece callback yapısına değineceğim daha sonraki yazılarda asenkron yapılara await, then gibi özelliklere değineceğim.

callback
callback

En yalın hali ile callbackler başka bir fonksiyonun içine yolladığımız fonksiyonlardır.Basit bir örnekle daha iyi anlayalım:

	var callback = function(){
			alert("merhaba dünya")
		       }

	var button = document.createElement("button")
	button.onclick=callback

Yukarıdaki örnekte bir buton nesnesi oluşturduk ve bu buton nesnesinin onclick özelliğine bir callback atadık. Artık buton nesnesine yolladığımız fonksiyonun çalıştırılmasından biz sorumlu değiliz, onu eklediğimiz nesne onclick eventi gerekli olduğunda bizim dışarıdan verdiğimiz fonksiyonu çalıştırmış olacak. En yalın haliyle budur. Bir nesneye veya fonksiyona içeride kendi çalışma biçimine göre bizim ona yolladığımız bir fonksiyonu çalıştırmasıdır.

Şimdi bir fonksiyona bir fonksiyon yollayarak bir örnek yapalım.

var mycallback = function(s1,s2){
		
		return 	s1+" user"+s2
	
	}
	
	var mainfunc = function(callback){
		var s1 = "merhaba"
		var s1 = ", giriş başarılı."
		
		console.log(callback(s1,s2))
	}
	
	mainfunc(mycallback)
	//Output: merhaba user, giriş başarılı.

Böyle bir kullanım da olabilir örneğin express js hello world örneği tam anlatmak istediğimiz şeye uygun:

const express = require('express')
const app = express()
const port = 3000

app.get('/', (req, res) => res.send('Hello World!'))

app.listen(port, () => console.log(`Example app listening on port ${port}!`))

Yukarıdaki örnekte “(req, res) => res.send(‘Hello World!’)” kısım bir arrow fonksiyon yazımı(normal yazımı: function (req,res){} , arrow fonksiyonları başka bir yazıda değineceğim aklımızı karıştırmasın şimdi.), req, res yazması yolladığımız fonksyiona içeride req res adında parametrelerin yolanacağını ifade ediyor. Bunları yazmadan bir fonksiyon yollarsak zaten ana fonksiyonun içindeki req res değerlerine callback içinden ulaşamazdık. Bu parametlerelerle birlikte sanki main fonksiyonun içnideymişiz gibi bu değişkenleri istediğimiz şekilde kullanıp ana fonksiyona yollayabiliyoruz. Callback in en güzel yanı da budur. Umarım sade faydalı bir içerik olmuştur.

Tarih:Javascript, Es6

Bu yazı yorumlara kapalı.