Sobes.tech
Junior

Nimetage tööriistad, mida kasutasite asünkroonsete kõnede kirjutamiseks.

sobes.tech AI

Vastus AI-lt

JavaScript pakub erinevaid tööriistu asünkroonsete kõnede tegemiseks:

  • Callback-funktsioonid: Klassikaline lähenemine, kus funktsioon antakse argumentina teisele funktsioonile ja täidetakse pärast asünkroonse operatsiooni lõpetamist.

  • Promises (lubadused): Objekti, mis esindab tulevase väärtuse või vea asünkroonse operatsiooni tulemust. Need lihtsustavad asünkroonsete kõnede ahelat ja vigade töötlemist.

    // Promises kasutamise näide
    fetch('/api/data')
      .then(response => response.json()) // Eduka vastuse töötlemine
      .then(data => console.log(data)) // Töötlem andmetega
      .catch(error => console.error('Viga:', error)); // Vigade töötlemine
    
  • Async/await: Süntaksiline suhkrupulber promiseside peal, mis võimaldab kirjutada asünkroonset koodi selgemas stiilis, parandades loetavust.

    // Async/await kasutamise näide
    async function fetchData() {
      try {
        const response = await fetch('/api/data'); // Ootab fetchi lõpetamist
        const data = await response.json(); // Ootab JSON-i parseldamist
        console.log(data);
      } catch (error) {
        console.error('Viga:', error);
      }
    }
    fetchData();
    
  • XMLHttpRequest (XHR): Põhiline API HTTP-päringute tegemiseks brauseris. See on madalama taseme API võrreldes fetch-iga ja nõuab rohkem koodi.

    // XMLHttpRequest kasutamise näide
    const xhr = new XMLHttpRequest();
    xhr.open('GET', '/api/data', true); // Asünkroonne päring
    xhr.onload = function() {
      if (xhr.status >= 200 && xhr.status < 300) {
        console.log(JSON.parse(xhr.responseText));
      } else {
        console.error('Viga:', xhr.statusText);
      }
    };
    xhr.onerror = function() {
      console.error('Võrguviga');
    };
    xhr.send();
    
  • Fetch API: Kaasaegsem ja paindlikum API HTTP-päringute tegemiseks, mis põhineb promisesil.

    // Fetch API kasutamise näide
    fetch('/api/data')
      .then(response => response.json())
      .then(data => console.log(data))
      .catch(error => console.error('Viga:', error));
    
  • HTTP-päringute raamatukogud: Näiteks axios (brauserile ja Node.js-le) või jQuery.ajax(). Need lihtsustavad ja standardiseerivad asünkroonsete päringute tegemist.

    // Axios kasutamise näide
    axios.get('/api/data')
      .then(response => console.log(response.data))
      .catch(error => console.error('Viga:', error));
    

Valik sõltub ülesande spetsiifikast ja projekti kontekstist. Fetch ja async/await on kaasaegsed ja soovitatavad enamikul juhtudel.