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.