Следващ урок: Грешки Към следващия урок →
Урок: Асинхронен JavaScript Повторение
Основи на уеб програмирането
На практика, каквато и задача да решаваме с JavaScript е почти сигурно, че ще стигнем до някакъв вид асинхронен код. В този урок ще си поговорим за callbacks, promises и за async/await.
Асинхронен код в JavaScript е код, който се изпълнява независимо от останалата част на нашето приложение. Това означава, че асинхронните функции работят паралелно с други части от кода, без да чакат. В JavaScript, асинхронните функции се използват често за заявки към външни ресурси. Езика предлага няколко варианта за справяне с асихронност.
function getData(url, callback) {
// Код за извличане на данни от указания URL
// ...
// След като данните са извлечени, изпълняваме callback функцията
callback(data);
}
function getDataFromServer() {
return new Promise((resolve, reject) => {
// Асихронния код се помества тук.
// При успех извикваме resolve. При неуспех reject.
});
}
const dataPromise = getDataFromServer();
dataPromise.then((data) => {
// Код, който ще се изпълни след края на операцията
});
async/await
е синтаксис, който позволява писането на асинхронен код по по-прост и четим начин. Това се постига като се използва ключовата дума async
пред функцията, която съдържа асинхронен код, и ключовата дума await
пред извикването на асинхронната функция. Това позволява кода да се "изпълнява последователно", като се чака за изпълнението на всяка асинхронна функция, преди да продължим с останалата част от кода.async function getData() {
// getDataFromServer е функция, която връща promise
const data = await getDataFromServer(); // функцията е паузирана тук
// data съдържа резултата от успешно изпълнената
// асихронна функция.
}
Практиката е най-бързия начин да усвоиш знания трайно. Подготвил съм ти малка задача свързана с урока.
Материали свързани с урока:
→ Файлове към урока
→ Callback function (MDN)
→ Using promises (MDN)
→ Introducing asynchronous JavaScript (MDN)