Async i await
Lekcja 9 z 9 w kursie Podchwytliwe elementy nowoczesnego JavaScriptu (ES6+) w Coddy.
Jeśli ukończyłeś(-aś) ostatnią lekcję, pewnie myślisz, że obietnice są trudne do zrozumienia albo nawet trudno zapamiętać ich składnię!
Nie martw się! ES6 pomoże Ci w tej kwestii.
<i>async</i>i<i>await</i>ułatwiają pisanie obietnic
Rozważ funkcję wykonującą zadanie asynchroniczne (czasochłonne).
Chcemy, aby ta funkcja zwracała obietnicę i czekała na jej wynik.
Jeśli napiszemy
asyncprzed dowolną funkcją Javascript, zawsze zwraca ona obietnicę.await sprawi, że funkcja będzie czekać na obietnicę i wstrzyma swoje działanie, dopóki obietnica nie zostanie spełniona.
Rozważ przykład pobierania danych z serwera — może to zająć kilka sekund.
async function fetchData () {
const response = await fetch("/url"); // poczekaj na zakończenie obietnicy
const movies = await response.json(); // poczekaj na zakończenie obietnicy
return movies;
}
fetchData.then(val => console.log(val)) // dane zwrócone przez APISłowa kluczowego
awaitmożna używać tylko wewnątrz funkcjiasync.
async-await można stosować zarówno w zwykłych funkcjach, jak i funkcjach strzałkowych.
const someFunc = async (a) => { await //kod }Wyzwanie
ŚredniMasz daną funkcję foo, która otrzymuje liczbę całkowitą n i zwraca obietnicę.
Napisz funkcję sum, która przyjmuje dwie obietnice jako dane wejściowe i zwraca sumę ich rozwiązanych wartości.
Funkcja powinna być oznaczona jako async!
Spróbuj swoich sił
const foo = async (x) => {
return x
}
// Napisz swój kod poniżejWszystkie lekcje w sekcji Podchwytliwe elementy nowoczesnego JavaScriptu (ES6+)
2Zanurzmy się
Zakres blokowy – let i constFunkcje strzałkoweSpread i restPętla for...ofKlasyPromisesAsync i awaitPoćwicz samodzielnie: Kompilator JavaScript online