Junior
Papaskink apie async/await konstrukciją JavaScript.
sobes.tech AI
Atsakymas iš AI
async/await – tai sintaksės cukrus, viršijantis pažadus, skirtas paprastesniam asinchroninio kodo rašymui, kuris atrodo kaip sinchroninis.
Funkcija, pažymėta žodžiu async, visada grąžina pažadą. async funkcijos viduje galima naudoti žodį await.
Operatorius await naudojamas prieš pažado iškvietimą. Jis sustabdo async funkcijos vykdymą tol, kol pažadas nebus įvykdytas (resolved) arba atmestas (rejected). Pažado vykdymo rezultatas (sėkmės reikšmė arba klaida) grąžinamas await operatoriaus.
Jei pažadas, prieš kurį yra await, atmestas, tai sukelia išimtį, kurią galima sugauti naudojant try...catch bloką.
// `async/await` naudojimo pavyzdys
async function fetchData() {
try {
// Laukiame asinchroninės operacijos įvykdymo (pvz., API užklausos)
const response = await fetch('https://api.example.com/data');
// Atsakymo išparsinimas į JSON
const data = await response.json();
// Gauto duomenų išvedimas
console.log(data);
} catch (error) {
// Sugauti galimą klaidą
console.error('Klaida gaunant duomenis:', error);
}
}
// Kvieskite `async` funkciją
fetchData();
// `async` funkcija, grąžinanti pažadą
async function getValue() {
return 10; // Tai automatiškai apvyniojama į Promise.resolve(10)
}
getValue().then(value => console.log(value)); // Išves 10
async/await privalumai:
- Kodo skaitomumas: Asinchroninis kodas tampa panašesnis į sinchroninį
- Klaidų apdorojimas: Patogiau naudoti standartinius
try...catchblokus. - Mažiau įdėjimo: Vengia "kailių kolbų" arba ilgos
.then()grandinės.
Reikia prisiminti, kad await galima naudoti tik async funkcijose.