Sobes.tech
Junior

Pavadinkite įrankius, kuriuos naudojote asinchroniniams skambutims rašyti.

sobes.tech AI

Atsakymas iš AI

JavaScript siūlo įvairius įrankius darbui su asinchroniniais iškvietimais:

  • Callback funkcijos: Klasikinis požiūris, kai funkcija perduodama kaip argumentas kitai funkcijai ir vykdoma po asinchroninės operacijos pabaigos.

  • Promises (įsipareigojimai): Objektai, kurie atstovauja būsimą reikšmę arba klaidą asinchroninėje operacijoje. Jie palengvina asinchroninių iškvietimų grandinėjimą ir klaidų apdorojimą.

    // Pavyzdys naudojant promises
    fetch('/api/data')
      .then(response => response.json()) // Sėkmingo atsakymo apdorojimas
      .then(data => console.log(data)) // Darbas su gauta informacija
      .catch(error => console.error('Klaida:', error)); // Klaidų apdorojimas
    
  • Async/await: Sintaksės cukrus virš promises, leidžiantis rašyti asinchroninį kodą aiškesniu stiliumi, kas gerina skaitomumą.

    // Pavyzdys naudojant async/await
    async function fetchData() {
      try {
        const response = await fetch('/api/data'); // Laukiama fetch pabaigos
        const data = await response.json(); // Laukiama JSON analizės
        console.log(data);
      } catch (error) {
        console.error('Klaida:', error);
      }
    }
    fetchData();
    
  • XMLHttpRequest (XHR): Pagrindinis API HTTP užklausoms vykdyti naršyklėje. Žemesnio lygio nei fetch ir reikalauja daugiau kodo apdorojimui.

    // Pavyzdys naudojant XMLHttpRequest
    const xhr = new XMLHttpRequest();
    xhr.open('GET', '/api/data', true); // Asinchroninė užklausa
    xhr.onload = function() {
      if (xhr.status >= 200 && xhr.status < 300) {
        console.log(JSON.parse(xhr.responseText));
      } else {
        console.error('Klaida:', xhr.statusText);
      }
    };
    xhr.onerror = function() {
      console.error('Tinklo klaida');
    };
    xhr.send();
    
  • Fetch API: Šiuolaikiškesnis ir lankstesnis API HTTP užklausoms vykdyti, pagrįstas promises.

    // Pavyzdys naudojant Fetch API
    fetch('/api/data')
      .then(response => response.json())
      .then(data => console.log(data))
      .catch(error => console.error('Klaida:', error));
    
  • HTTP užklausų bibliotekos: Pavyzdžiui, axios (naršyklėms ir Node.js) arba jQuery.ajax(). Jos supaprastina ir standartizuoja asinchroninių užklausų vykdymą.

    // Pavyzdys naudojant Axios
    axios.get('/api/data')
      .then(response => console.log(response.data))
      .catch(error => console.error('Klaida:', error));
    

Pasirinkimas priklauso nuo užduoties specifikos ir projekto konteksto. Fetch ir async/await yra šiuolaikiniai ir rekomenduojami daugeliu atvejų.