Norādiet rīkus, kurus izmantojāt asinhrono zvanu rakstīšanai.
sobes.tech AI
Atbilde no AI
JavaScript piedāvā dažādus rīkus darbam ar asinhronajiem izsaukumiem:
-
Callback funkcijas: Klasisks pieejas veids, kur funkcija tiek nodota kā argumenta citai funkcijai un tiek izpildīta pēc asinhronās operācijas pabeigšanas.
-
Promises (solījumi): Objekti, kas pārstāv nākotnes vērtību vai kļūdu asinhronajā operācijā. Tie atvieglo ķēžu veidošanu un kļūdu apstrādi.
// Piemērs, izmantojot promises fetch('/api/data') .then(response => response.json()) // Veiksmīgas atbildes apstrāde .then(data => console.log(data)) // Darbs ar saņemto datu .catch(error => console.error('Kļūda:', error)); // Kļūdu apstrāde -
Async/await: Sintaktiskais cukurs virs promises, kas ļauj rakstīt asinhrono kodu skaidrāk, uzlabojot lasāmību.
// Piemērs, izmantojot async/await async function fetchData() { try { const response = await fetch('/api/data'); // Gaida fetch pabeigšanu const data = await response.json(); // Gaida JSON parsēšanu console.log(data); } catch (error) { console.error('Kļūda:', error); } } fetchData(); -
XMLHttpRequest (XHR): Bāzes API HTTP pieprasījumu veikšanai pārlūkprogrammā. Tas ir zemākā līmenī nekā
fetchun prasa vairāk koda apstrādei.// Piemērs, izmantojot XMLHttpRequest const xhr = new XMLHttpRequest(); xhr.open('GET', '/api/data', true); // Asinhrons pieprasījums xhr.onload = function() { if (xhr.status >= 200 && xhr.status < 300) { console.log(JSON.parse(xhr.responseText)); } else { console.error('Kļūda:', xhr.statusText); } }; xhr.onerror = function() { console.error('Tīkla kļūda'); }; xhr.send(); -
Fetch API: Mūsdienīgāks un elastīgāks API HTTP pieprasījumu veikšanai, balstīts uz promises.
// Piemērs, izmantojot Fetch API fetch('/api/data') .then(response => response.json()) .then(data => console.log(data)) .catch(error => console.error('Kļūda:', error)); -
HTTP pieprasījumu bibliotēkas: Piemēram,
axios(pārlūkprogrammām un Node.js) vaijQuery.ajax(). Tās vienkāršo un standartizē asinhrono pieprasījumu veikšanu.// Piemērs, izmantojot Axios axios.get('/api/data') .then(response => console.log(response.data)) .catch(error => console.error('Kļūda:', error));
Izvēle ir atkarīga no uzdevuma specifikas un projekta konteksta. Fetch un async/await ir mūsdienīgi un ieteicami lielākajā daļā gadījumu.