CodeBlanks Logo Icon CodeBlanks

Hata-önce callback'ler

JavaScript kursu · Orta seviye · Ders 68/134

Node.js tarzı hata-önce callback geleneğini öğrenirsin.

Error-first callback geleneği

Node.js'te asenkron işlemlerde hata yönetimi için yaygın bir gelenek vardır: callback ilk parametre olarak hata alır. Hata yoksa bu parametre null olur; hata varsa bir Error nesnesi olur. Diğer parametreler sonucu taşır.

function readUser(id, callback) {
  setTimeout(() => {
    callback(null, { id: id });
  }, 100);
}

Bu gelenek error-first callback olarak bilinir. Callback'i çağırırken önce hatayı kontrol edersin; bu sayede hatayı unutma riski azalır.

Önce hatayı kontrol et

Bir error-first callback kullanırken önce ilk parametreyi kontrol edersin. Hata varsa sonucu kullanmazsın; hata yoksa err null olur ve sonucu güvenle kullanabilirsin.

readUser(1, (err, user) => {
  if (err) {
    console.log('Hata:', err.message);
    return;
  }
  console.log('Kullanıcı:', user.id);
});

return ile erken çıkmak, hatayı yakaladıktan sonra yanlışlıkla sonuca erişmeyi engeller. Bu desen Node.js'te çok yaygındır.

Uygulama readConfig fonksiyonunu yaz

readConfig adında bir fonksiyon tanımla. Tek parametre alsın: callback. Fonksiyon içinde setTimeout kullanarak 100 ms sonra callback'i null ve bir config nesnesiyle çağır. Hata olmadığı için ilk argüman null olmalı.

Örnek çözümü göster
function readConfig(callback) {
  setTimeout(() => {
    callback(null, { theme: 'dark' });
  }, 100);
}

Kendini test et

  1. Hangisi error-first callback imzasıdır?

    • callback(err, data)
    • callback(result)
    • callback(error)
    • callback(data, err)
    Cevabı göster

    callback(err, data) — Doğru! İlk parametre hata (err), ikincisi sonuç (data).

  2. Hata kontrolünü tamamla

    readUser(1, (err, user) => {
      if (____) {
        console.log('Hata:', err.message);
        return;
      }
    });
    Cevabı göster
    readUser(1, (err, user) => {
      if (err) {
        console.log('Hata:', err.message);
        return;
      }
    });
  3. Kavramları eşleştir

    err parametresi
    İlk argüman
    null err
    Hata yok
    new Error()
    Hata nesnesi
    callback(err, data)
    Hata önce
  4. Error-first callback'te err === null ne anlama gelir?

    • Bir hata oluştu
    • Callback henüz çağrılmadı
    • İşlem başarılı, hata yok
    • Sonuç yok
    Cevabı göster

    İşlem başarılı, hata yok — Doğru! null err, hatanın olmadığını ve sonucun kullanılabileceğini gösterir.

Orta seviye bölümündeki tüm dersler