Sobes.tech
Middle

Promise'dan önce ne kullanıyordunuz?

sobes.tech yapay zeka

AI'dan gelen yanıt

Promise öncesinde, callback'ler yaygın olarak kullanılıyordu.

Callback'lerin Özelliği:

Bir fonksiyon, başka bir fonksiyona argüman olarak geçirilir ve belirli bir işlemin tamamlanmasının ardından çalıştırılır.

Örnek:

// Bir asenkron işlemi callback ile çağırma örneği
function fetchData(callback) {
  setTimeout(() => {
    const data = "Bazı veriler";
    callback(null, data); // İlk argüman hata, ikinci sonuç
  }, 1000);
}

fetchData((err, data) => {
  if (err) {
    console.error("Veri alınırken hata:", err);
  } else {
    console.log("Veri alındı:", data);
  }
});

Callback kullanmanın Dezavantajları:

  • Callback Hell (Callback Cehennemi): İç içe geçmiş asenkron işlemler zinciri, okunması zor ve karmaşık kodlara yol açar.
  • Hata işleme zorlukları: Hataların her seviyede iletilmesi ve kontrol edilmesi gerekir.
  • Standartlaşmış bir yaklaşım eksikliği: Farklı kütüphaneler farklı callback sözleşmeleri kullanabilir.

Promise öncesi alternatif yaklaşımlar:

Promise öncesinde, saf callback'lerin yanı sıra, asenkron yönetimi için kütüphaneler ve desenler kullanılırdı, örneğin:

  • Asenkron kütüphaneler: Örneğin, async (Node.js için, ancak tarayıcıda da kullanılabilir). Paralel ve sıralı yürütme gibi asenkron akışları yönetmek için araçlar sağlar.
  • Publisher/Subscriber (Pub/Sub) deseni: Daha karmaşık etkileşim senaryoları için.
  • Olay Yayıcılar: Node.js ve tarayıcı ortamında (örneğin, EventEmitter).

Yine de, callback'ler birçok asenkron işlemin temelini oluşturuyordu. Promise, asenkronlukla çalışmayı daha yapılandırılmış, birleşik ve okunabilir hale getiren bir yöntem sunarak, "Callback Hell" sorunlarını giderdi.