Middle
Proč byla zavedena konstrukce async/await a jak zlepšuje práci s asynchronním kódem?
sobes.tech AI
Odpověď od AI
Async/await byl zaveden, aby zjednodušil psaní asynchronního kódu, učinil ho čitelnějším a lépe udržovatelným ve srovnání s tradičními callbacky nebo promises.
Jak to zlepšuje:
- Čitelnost: Kód s
async/awaitvypadá jako synchronní, řádek po řádku, což výrazně usnadňuje jeho pochopení. - Zpracování chyb: Umožňuje používat standardní konstrukce jako try/catch pro zpracování chyb v asynchronním kódu, na rozdíl od
.catch()u promises. - Ladění: Body přerušení (breakpoints) fungují stejně jako ve synchronním kódu, což usnadňuje ladění.
- Méně "callback hell": Odstraňuje problém vnořených callbacků, které vedou k nečitelnému kódu.
Příklad:
Kód s promises:
// Příklad s promises
fetch('https://api.example.com/data')
.then(response => response.json())
.then(data => {
console.log(data);
})
.catch(error => {
console.error('Chyba při načítání dat:', error);
});
Stejný kód s async/await:
// Příklad s async/await
async function fetchData() {
try {
const response = await fetch('https://api.example.com/data');
const data = await response.json();
console.log(data);
} catch (error) {
console.error('Chyba při načítání dat:', error);
}
}
fetchData();
Konstrukce async/await je založena na promises a je syntaktickým cukrem pro jejich práci. Funkce označená jako async vždy vrací promise. Operátor await lze použít pouze uvnitř async funkcí a "čeká" na vyřešení promise, vrací její vyřešenou hodnotu nebo vyvolá výjimku v případě chyby.