Sobes.tech
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): co kütüphanesi veya manuel olarak asenkronlukla çalışmak için kullanılabilir, ancak async/await daha 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)