Sobes.tech
Junior

Asenkron çağrılar yazmak için kullandığınız araçları adlandırın.

sobes.tech yapay zeka

AI'dan gelen yanıt

JavaScript, asenkron çağrılarla çalışmak için çeşitli araçlar sunar:

  • Callback fonksiyonları: Klasik yaklaşım, bir fonksiyonun başka bir fonksiyona argüman olarak geçirilip, asenkron işlemin tamamlanmasının ardından çalıştırılmasıdır.

  • Promises: Bir asenkron işlemin gelecekteki değerini veya hatasını temsil eden nesnelerdir. Asenkron çağrı zincirlerini ve hata işleme süreçlerini basitleştirirler.

    // Promises 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 verilerle çalışma
      .catch(error => console.error('Hata:', error)); // Hata yönetimi
    
  • Async/await: Promises üzerinde sözdizimi şekeridir, daha senkron bir tarzda asenkron kod yazmaya olanak tanır, bu da okunabilirliği artırır.

    // Async/await kullanımı örneği
    async function fetchData() {
      try {
        const response = await fetch('/api/data'); // fetch'in tamamlanmasını bekler
        const data = await response.json(); // JSON'un ayrıştırılmasını bekler
        console.log(data);
      } catch (error) {
        console.error('Hata:', error);
      }
    }
    fetchData();
    
  • XMLHttpRequest (XHR): Tarayıcıda HTTP istekleri yapmak için temel API. fetch'e kıyasla daha düşük seviyeli ve daha fazla kod gerektirir.

    // XMLHttpRequest kullanımı örneği
    const xhr = new XMLHttpRequest();
    xhr.open('GET', '/api/data', true); // Asenkron istek
    xhr.onload = function() {
      if (xhr.status >= 200 && xhr.status < 300) {
        console.log(JSON.parse(xhr.responseText));
      } else {
        console.error('Hata:', xhr.statusText);
      }
    };
    xhr.onerror = function() {
      console.error('Ağ hatası');
    };
    xhr.send();
    
  • Fetch API: Promiselere dayanan modern ve daha esnek bir API, HTTP istekleri yapmak için.

    // Fetch API kullanımı örneği
    fetch('/api/data')
      .then(response => response.json())
      .then(data => console.log(data))
      .catch(error => console.error('Hata:', error));
    
  • HTTP istekleriyle çalışma kütüphaneleri: Örneğin, axios (tarayıcı ve Node.js için) veya jQuery.ajax(). Asenkron istekleri kolaylaştırır ve standartlaştırır.

    // Axios kullanımı örneği
    axios.get('/api/data')
      .then(response => console.log(response.data))
      .catch(error => console.error('Hata:', error));
    

Araç seçimi, görevin özelliğine ve proje bağlamına bağlıdır. Fetch ve async/await, çoğu durumda modern ve önerilen yaklaşımlardır.