Junior — Middle
Kāda ir atšķirība starp konstrukcijām async/await un Promise, strādājot ar asinhrono kodu JavaScript?
sobes.tech AI
Atbilde no AI
Promise ir objekts, kas pārstāv asinhronas operācijas rezultātu, kas nākotnē var tikt izpildīts vai noraidīts. Tas ļauj reģistrēt apstrādātājus, izmantojot then() un catch() metodes.
async/await ir sintaktisks cukurs virs Promise, kas ļauj rakstīt asinhrono kodu sinhronā stilā, padarot to lasāmāku un vieglāk debugojamu.
Galvenās atšķirības:
- Promise prasa then/catch ķēdes rezultātu un kļūdu apstrādei.
- async/await ļauj izmantot await atslēgvārdus, lai gaidītu Promise rezultātu asinhronā funkcijā.
Piemērs:
// Promise
fetch(url)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
// async/await
async function fetchData() {
try {
const response = await fetch(url);
const data = await response.json();
console.log(data);
} catch (error) {
console.error(error);
}
}
fetchData();
Tādējādi, async/await vienkāršo darbu ar Promise, padarot kodu lineārāku un saprotamāku.