Самое понятное объяснение работы с асинхронным кодом в javascript которое мне попадалось:
Основной момент — async/await это просто синтаксический сахар для Promise, поэтому для понимания сначала пишем код используя Promise и только потом переходим на async/await.
Пример кода на Promise:
function fetchStatus() {
return new Promise((resolve, reject) => {
fetch('https://dummyjson.com/test')
.then(response => {
return response.json();
})
.then(json => {
resolve(json.status);
})
.catch(error => {
console.log(error);
reject(error);
});
})
}
const resultEl = document.querySelector('#result');
fetchStatus()
.then(status => {
resultEl.innerHTML = status;
})
.catch(error => {
resultEl.innerHTML = error.message;
});
Пример этого же кода на async/await:
async function fetchStatus() {
try {
var response = await fetch('https://dummyjson.com/test');
var json = await response.json();
return json.status;
}
catch (error) {
console.log(error);
throw error;
}
}
const resultEl = document.querySelector('#result');
try {
resultEl.innerHTML = await fetchStatus();
}
catch (error) {
resultEl.innerHTML = error.message;
}
Добавить комментарий