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
fetchir 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) arbajQuery.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ų.