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
cobibliotēku vai manuāli, lai ganasync/awaitkļ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 |