event loop

  • |

    Learning Log #8: Asynchroniczność w JavaScript – promises i async/await

    Środa, 21:50. Ten sam fragment kodu wyświetla się już trzeci wieczór z rzędu. Konsola pokazuje undefined tam, gdzie powinny być dane.

    Asynchroniczność w JavaScript to temat, o którym każdy mówił to samo: „To ten moment, kiedy JavaScript przestaje mieć sens, a potem nagle zaczyna mieć sens zupełnie inny niż myślałaś.”

    Po tygodniach walki, w końcu rozumiem promises i async/await na tyle, żeby o tym napisać.

    W tym Learning Logu pokazuję:

    – Dlaczego kod w JavaScript nie zawsze wykonuje się w kolejności, w jakiej go piszemy (i dlaczego to konieczne)
    – Wywołania zwrotne (callbacks) i „piekło wywołań zwrotnych” – problem, który trzeba było rozwiązać
    – Obietnice (Promises) – eleganckie rozwiązanie z łańcuchowaniem operacji
    – Async/await – składnia sprawiająca, że kod asynchroniczny wygląda jak zwykły, sekwencyjny kod
    – Praktyczny projekt: wyszukiwarka pogody korzystająca z prawdziwego API
    – Cztery typowe błędy początkujących (zapominanie o await, operacje sekwencyjne zamiast równoległych, brak obsługi błędów)

    Plus: dlaczego warto poznać wszystkie trzy podejścia po kolei, zamiast od razu skakać do najnowszej składni.

    Trzy tygodnie frustracji, diagramy na kartce papieru, wieczory gapienia się w undefined w konsoli. Ale kiedy w końcu kliknęło – satysfakcja jakiej nie dała żadna łatwiejsza lekcja.