Node.js
Error-first callback
Node.js error-first callback kuralını öğrenirsin.
Error-first callback
Node.js'te callback'ler için yerleşik bir sözleşme (convention) vardır: callback'in ilk parametresi her zaman hatadır. Buna error-first callback denir.
Sözdizimi: function handler(err, data) { if (err) throw err; console.log(data); }. İlk parametre err: hata yoksa null, varsa hata nesnesi alır. İkinci parametre ise asıl veridir. Bu sözleşme Node.js'in tüm çekirdek API'lerinde kullanılır.
Bu desen, hatayı işlemenin standart bir yolunu sunar. Callback her çağrıldığında önce err kontrol edilir; null ise devam edilir, değilse hata fırlatılır veya uygun şekilde ele alınır.
Hatayı kontrol et
Error-first callback'lerde ilk iş hatayı kontrol etmektir. if (err) ile hata varsa uygun şekilde işlem yapılır: fırlatmak, günlüğe yazmak veya kullanıcıya bildirmek.
Standart bir denetim şöyledir: if (err) { console.error(err); return; }. Bu, hatayı yazdırır ve fonksiyondan çıkar; veri işlenmez. Hata yoksa err null olur ve data güvenle kullanılır.
Bu deseni her çağrıda tekrarlarsın. Node.js'in dosya, ağ ve zamanlayıcı API'leri bu sözleşmeye uyar; bu yüzden hatayı kontrol etmek callback kullanımının ayrılmaz bir parçasıdır.
Uygulama Error-first simülasyonu
loadUser(id, cb) fonksiyonunu tanımla. id 0 ise cb(new Error('yok'), null), değilse cb(null, { name: 'Ayşe' }) çağrısı yapsın. loadUser(1, (err, user) => { if (err) { console.error(err.message); return; } console.log(user.name); }) biçiminde çağır.
Örnek çözümü göster
function loadUser(id, cb) {
if (id === 0) { cb(new Error('yok'), null); return; }
cb(null, { name: 'Ayşe' });
}
loadUser(1, (err, user) => {
if (err) { console.error(err.message); return; }
console.log(user.name);
});
Kendini test et
-
Error-first callback'in ilk parametresi nedir?
- Veri
- Status kodu
- Callback adı
- Hata
Cevabı göster
Hata — ilk parametre err'dir; null ise sorun yoktur.
-
Hata kontrolü
function handler(err, data) {
if (____) throw err;
console.log(data);
}
Cevabı göster
function handler(err, data) {
if (err) throw err;
console.log(data);
}
-
Error-first parçalarını eşle
- err
- Birinci parametre
- data
- İkinci parametre
- null
- Hata yokken err'nin değeri
- if (err)
- Hata denetimi
Sıradaki ders: Callback hell