Sobes.tech
Junior

Kādas asīnhronās koda darba metodes jūs zināt?

sobes.tech AI

Atbilde no AI

  • Callback funkcijas: Funkcijas pārsūtīt kā argumentu citai funkcijai, kas tiks izsaukta pēc asīnhroniskas operācijas pabeigšanas. Var novest pie "callback hell".
  • Promises (Promisi): Objekti, kas pārstāv galīgo asīnhroniskas operācijas pabeigšanu (vai neveiksmi) un tās rezultāta vērtību. Nodrošina strukturētāku asīnhroniskuma pārvaldību.
    // Piemērs, izmantojot promisi
    fetch('/api/data')
      .then(response => response.json()) // Veiksmīgas atbildes apstrāde
      .then(data => console.log(data)) // Iegūto datu apstrāde
      .catch(error => console.error('Kļūda, iegūstot datus:', error)); // Kļūdas apstrāde
    
  • Async/await: Sintakses cukurs virs promisiem, kas ļauj rakstīt asīnhronisku kodu vairāk sērijveidā, padarot to lasāmāku un vienkāršāku atkļūdošanai.
    // Piemērs, izmantojot async/await
    async function fetchData() {
      try {
        const response = await fetch('/api/data'); // Gaidīt, kamēr promiss izpildās
        if (!response.ok) {
          throw new Error(`HTTP kļūda! statuss: ${response.status}`);
        }
        const data = await response.json(); // Gaidīt, kamēr promiss izpildās
        console.log(data);
      } catch (error) {
        console.error('Kļūda, iegūstot datus:', error); // Kļūdas apstrāde
      }
    }
    fetchData();
    
  • Generatori (Generators): Var tikt izmantoti darbam ar asīnhroniskumu kopā ar co bibliotēku vai manuāli, lai gan async/await kļuva plaši izplatīts.

Galveno pieeju salīdzinājums:

Veids Priekšrocības Trūkumi
Callbacks Vienkārši sākotnēji posmā "Callback hell", kļūdu apstrādes sarežģītība
Promises Uzlabota lasāmība, kļūdu apstrāde Var būt apjomīgi ķēdēs ar operācijām
Async/await Augsta lasāmība, līdzīga sinhroniskajam kodam Prasa async/await atbalstu videi