Junior
Asenkron kodla çalışma konusunda hangi yöntemleri biliyorsunuz?
sobes.tech yapay zeka
AI'dan gelen yanıt
- Callback fonksiyonları: Bir fonksiyonu başka bir fonksiyona argüman olarak geçmek, ve bu fonksiyonun asenkron işlemin tamamlanmasından sonra çağrılması. "Callback hell"'e yol açabilir.
- Promisler (Promises): Asenkron bir işlemin nihai tamamlanmasını (veya başarısızlığını) ve sonucunu temsil eden nesneler. Daha yapılandırılmış bir asenkron yönetimi sağlarlar.
// Promis kullanımı örneği fetch('/api/data') .then(response => response.json()) // Başarılı yanıtın işlenmesi .then(data => console.log(data)) // Alınan verilerin işlenmesi .catch(error => console.error('Veri alınırken hata:', error)); // Hata işleme - Async/await: Promisler üzerinde sözdizimi şekeridir, asenkron kodu daha senkron bir tarzda yazmaya olanak tanır, bu da onu daha okunabilir ve hata ayıklamayı kolaylaştırır.
// Async/await kullanımı örneği async function fetchData() { try { const response = await fetch('/api/data'); // Promisenin tamamlanmasını bekleme if (!response.ok) { throw new Error(`HTTP hatası! durum: ${response.status}`); } const data = await response.json(); // Promisenin tamamlanmasını bekleme console.log(data); } catch (error) { console.error('Veri alınırken hata:', error); // Hata işleme } } fetchData(); - Üreticiler (Generators):
cokütüphanesi veya manuel olarak asenkronlukla çalışmak için kullanılabilir, ancakasync/awaitdaha yaygın hale gelmiştir.
Ana yaklaşımların karşılaştırması:
| Yöntem | Avantajlar | Dezavantajlar |
|---|---|---|
| Callbacks | Başlangıçta basit | "Callback hell", hata yönetiminde karmaşıklık |
| Promisler | Daha iyi okunabilirlik, hata yönetimi | Zincirleme işlemlerde hantal olabilirler |
| Async/await | Yüksek okunabilirlik, senkron kod gibi görünüm | Ortam desteği gerektirir (async/await) |