Callback
- Node.js kursu
- Uzman
- Ders 10/47
- 5 dk
Native callback ve async öğrenirsin.
Callback
Bir callback, bir fonksiyona parametre olarak geçirilen ve daha sonra çağrılan fonksiyondur. Native addon'lar callback'leri JS'e yanıt vermek için kullanır. callWithCallback(value, cb) bunu modeller: cb(value) ile callback'i çağırır, sonucu döndürür.
Örnek: callWithCallback(5, (v) => v * 2). Burada (v) => v * 2 callback'tir; 5 değerle çağrılır, 10 döndürür. Native addon'da callback, uzun süren bir iş bitince çağrılır; böylece JS beklerken engellenmez. Burada senkron bir model kullanıyoruz ama yapı aynı: bir değer ve bir callback al, callback'i değerle çağır, sonucu döndür. Çıktı 10 olur; callback'in dönüş değeri.
Callback çağrısı
Bu derste callWithCallback fonksiyonunu yazacağız. Fonksiyon bir değer ve bir callback alır; callback'i değerle çağırır, sonucu döndürür. Bu, native addon'ların JS'e nasıl yanıt verdiğini basit bir modelle gösterir.
Örnek: function callWithCallback(value, cb) { return cb(value); }. callWithCallback(5, (v) => v * 2) 10 döndürür. cb(value) çağrısı callback'i çalıştırır; dönüş değeri fonksiyonun dönüşü olur. Native tarafında bu, napi_call_function ile yapılır; burada doğrudan JS çağrısı kullanıyoruz. console.log(callWithCallback(5, (v) => v * 2)) 10 yazdırır. Bu, callback deseninin en temel biçimidir.
Uygulama Callback fonksiyonu yaz
function callWithCallback(value, cb) yaz. return cb(value) ile callback'i çağır. console.log(callWithCallback(5, (v) => v * 2)) yazdır.
Başlangıç kodu
// callWithCallback fonksiyonu yaz
// bir değer ve bir geri çağrı alır
// geri çağrıyı değerle çağır, sonucu döndür
// 5 ve (v) => v * 2 ile çağır, yazdır
// buraya yazÖrnek çözüm
function callWithCallback(value, cb) {
return cb(value);
}
console.log(callWithCallback(5, (v) => v * 2));Beklenen çıktı
10
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 callWithCallback(5, (v) => v * 2) ne döndürür?
callWithCallback(5, (v) => v * 2)- 5
- 2
- 10 Doğru cevap
- 7
Açıklama: cb(5) = 5 * 2 = 10 döner.
2 callback çağrısını tamamla
function callWithCallback(value, cb) { return ____(value); }
function callWithCallback(value, cb) { return cb(value); }
Açıklama: cb(value) callback'i çağırır.
3 Kavramı açıklamasına eşle
| Kavram | Anlamı |
|---|---|
Callback |
Sonra çağrılan fonksiyon |
cb(value) |
Callback'i değerle çağırır |
(v) => v * 2 |
Bir ok fonksiyonu |
return |
Sonucu döndürür |