Masz już konto? Zaloguj się

Asynchroniczność w JavaScript

W tym warsztacie poznasz najważniejsze zagadnienia i kontekst, które pozwolą Ci lepiej zrozumieć asynchroniczność oraz różne techniki przydatne w praktyce

1 lekcji

41min

4 (5 oceny)

Asynchroniczność w JavaScript - Krok po Kroku

Asynchroniczność w JavaScript z jednej strony daje duże możliwości a z drugiej stawia przed nami wyzwania dotyczące zapanowania nad kodem aplikacji. W tym warsztacie poznasz najważniejsze zagadnienia i kontekst, które pozwolą Ci lepiej zrozumieć asynchroniczność oraz różne techniki przydatne w praktyce. Mowa m.in. o Higher-Order Functions, Currying oraz Promise i składni Async / Await.

Event Loop

Z jednej strony JavaScript jest językiem jednowątkowym (eng. single threaded). Oznacza to że w jednej chwili może być wykonywana wyłącznie jedna operacja. W sytuacji gdy wykonanie jakiejś funkcji zajmuje więcej czasu, pozostałe muszą oczekiwać na jej zakończenie. Pomimo tego możemy wykorzystywać asynchroniczność w JavaScript ponieważ silnik języka udostępnia nam tzw. Web API z pomocą którego część zadań może być wykonywana "w tle" dzięki mechanizmowi o nazwie Event Loop. Daje nam to większe możliwości ale jednocześnie stawia wyzwanie w postaci obsługi kodu asynchronicznego.

Od callbacków po async / await

Praca z kodem asynchronicznym z natury jest dość mało intuicyjna, w szczególności dla początkujących programistów. Obecnie mamy przynajmniej kilka mechanizmów z których możemy korzystać. Pierwszą z nich są callbacki, czyli funkcje które uruchamiane są w chwili, gdy zadanie asynchroniczne zostanie zakończone. To jednak rodzi problem dotyczący obsługi wielu zdarzeń asynchronicznych oraz może powodować tzw. Inversion of Control, co z kolei może być przyczyną wielu błędów. Poza callbackami do naszej dyspozycji są Promise (obietnice) oraz składnia Async / Await, będąca tzw "syntatic sugar" dla obietnic. Wszystkie z tych technik zostaną omówione podczas warsztatu.

Elementy programowania funkcyjnego

Programowanie funkcyjne jest paradygmatem, którego elementy spotykamy w JavaScript praktycznie na każdym kroku. Z tego powodu bardzo istotne jest to, aby rozumieć pojęcia takie jak funkcje wyższego rzędu (eng. Higher-Order Functions), Currying czy cechy funkcji czystych (eng. Pure Functions). Zrozumienie tych zagadnień oraz umiejętne wykorzystanie ich w praktyce bardzo pomaga w kontekście pracy z JavaScriptem oraz jego asynchroniczną naturą. Przykładowo zrozumienie funkcji wyższego rzędu daje nam większą swobodę w przypadku pracy z callbackami (ale i nie tylko).

Obsługa wyjątków i błędów

Asynchroniczność w JavaScripcie rodzi jeszcze jeden problem - obsługę błędów. W tym celu wykorzystujemy różnego rodzaju techniki, w zależności od sytuacji oraz obranej strategii. Możemy wykorzystywać specjalne callbacki bądź metody .catch do tego aby reagować na ewentualne błędy i wyjątki lub składnię try ... catch ... z której praca również wymaga pewnego doświadczenia. Podczas warsztatu omówimy sobie różne techniki obsługi błędów, oparte o dostępne metody oraz praktyki polecane przez ekspertów.

Asynchroniczność to "must-have"

Niemożliwe jest pisanie kodu JavaScript bez wykorzystania asynchroniczności. Zatem jeżeli sama asynchroniczność to temat z którym nie czujesz się komfortowo, zobacz ten warsztat. Dzięki niemu poznasz zestaw najważniejszych zagadnień i wskazówek, które pozwolą Ci tworzyć lepszy kod. Sama asynchroniczność często pojawia się na rozmowach rekrutacyjnych, zatem znajomość teorii i praktyki może sprawdzić się też w takiej sytuacji.

Dla kogo jest ten kurs?

Warsztat został przygotowany z myślą o osobach, które znają już język JavaScript na poziomie podstawowym lub wyższym i nadal asynchroniczność lub wymienione w podsumowaniu tematy stanowią dla nich wyzwanie. Jednocześnie sam warsztat daje szeroką perspektywę w kontekście rozumienia asynchronicznej natury JavaScriptu oraz zawiera pojęcia m.in. z zakresu programowania funkcyjnego, na których mogą skorzystać bardziej doświadczeni programiści. W warsztacie zostały omówione najważniejsze zagadnienia przydatne w praktyce z pominięciem szczególnie zaawansowanych tematów dotyczących asynchroniczności.

Czego się nauczysz?

  • Czym jest asynchroniczność?

  • Czym jest Event Loop?

  • Higher-Order Functions

  • Currying

  • Pure Functions

  • Callbacks

  • Promise

  • Async / Await

  • Obsługa błędów metodą .catch

  • Obsługa błędów z try ... catch ...

  • Obsługa błędów z pomocą helpera

  • Obsługa błędów w Node.js

Autor kursu

Adam Gospodarczyk

Średnia ocen autora: 5

Bio
Nazywam się Adam Gospodarczyk, jestem designerem i full-stack developerem. Przez całą swoją karierę zawodową pracuję w świecie startupów z branży edukacji, szkoleń pracowników oraz rekrutacji. Jestem współzałożycielem trzech produktów, które rozwijałem w roli CTO od samego początku. Przez ten czas zdobyłem szerokie doświadczenie znacznie wykraczające poza zakres samej technologii. W maju 2017 roku założyłem kanał na YouTube „overment” (https://overment.com) w ramach side-project’u po godzinach. Dziś jest to jeden z największych w Polsce tego typu projektów dla programistów za który otrzymałem nagrodę „JavaScript Hero of Community” podczas konferencji JS Poland 2019. Łącząc moje startup’owe doświadczenie z pasją do technologii, pomogę Ci nauczyć się programowania patrząc szerzej na perspektywę całego biznesu - jest to doceniana przez pracodawców umiejętność, którą wiele osób całkowicie pomija. Przy tym wszystkim pokażę Ci jak ważna jest regularna nauka i pozostawanie na bieżąco.
Inne kursy tego autora
Prompt Engineering Osobisty Avatar AI No-code Kurs Newsletter na Autopilocie Kurs NestJS w Praktyce Kurs NestJS od Podstaw

Dołącz do ponad 10 tys. zadowolonych z naszych kursów

Mateusz Zwoliński

27 stycznia 2021

Sam kurs w miarę zwarty, natomiast szczególnie pod koniec, gdzie pojawiły się treści wymagające większego skupienia wkradło się dużo błędów montażowych - powtórzeń tekstu, urwanych słów itd., które bardzo przeszkadzały w odbiorze. Liczyłem też na więcej czasu poświęconego promisom niż callbackom, powstał bardziej wykład o historii js niż współczesnych technikach. Szczególnie śledząc kanał Adama na yt, tu lekko się rozczarowałem. Ostatecznie merytorycznie 4/5, montaż 2/5 ;)

Kamil Kaszubski

11 lutego 2021

Najlepsze wytłumaczenie w sieci!

Maciej Dzik

7 listopada 2021

Robert Studziński

1 kwietnia 2022

Rafał

15 sierpnia 2022

Kurs Asynchroniczność w JavaScript

  • 1 lekcji wideo

  • 41min materiału

  • Ostatnia rewizja 20.01.2021

  • Certyfikat w ramach ścieżek

  • Dostęp z urządzeń mobilnych

Dlaczego wybrać właśnie ten kurs?

Efektywna nauka

Kurs wideo to najbardziej efektywna a zarazem najprzyjemniejsza forma nauki. Jest on tak prowadzony, byś cały czas mógł go śledzić z zainteresowaniem i zaangażowaniem, a także czerpać satysfakcję ze zdobytej wiedzy!

Wiedza ekspertów

Wiedza, którą otrzymujesz w tym kursie, to nie tylko sucha teoria, ale również wskazówki od praktyka z wieloletnim doświadczeniem, dzięki którym dużo łatwiej będzie Ci opanować materiał i pracować efektywniej.

Praktyczne przykłady

Uczysz się na praktycznych przykładach. Kurs, który masz przed sobą to esencja praktycznej wiedzy i doświadczenia a także wzorów, które oszczędzą Ci godziny pracy i poszukiwań.

Pytania i odpowiedzi

Przeczytaj najczęściej zadawane pytania

Masz więcej pytań?

Porozmawiaj z nami na na czacie

Wyślij nam e-mail

Zadzwoń +48 880880606

Czy każdy kurs ma pliki źródłowe?

Nie każdy. Jeśli pliki są dostępne dla danego kursu, znajdziesz je w zakładce źródła. Niektóre kursy nie posiadają źródeł ponieważ nie są potrzebne, inne nie mogły być zamieszczone np. ze względu na prawa autorskie do wykorzystania komercyjnych prac naszych autorów. Staramy się aby kursy były maksymalnie praktyczne i chętnie pokazujemy zaplecze zawodowe naszych autorów, ale niekiedy nie możemy dołączyć go w postaci źródeł.

Jak jest skonstruowany kurs?

Kurs składa się z rozdziałów oraz lekcji. Staramy się, aby optymalnie kursy miały 5-7 rozdziałów po około 5-10 lekcji w każdym. W ten sposób nauka jest optymalna a podtrzymanie uwagi staje się łatwiejsze. Rekomendujemy przerabianie nie więcej niż jednego rozdziału naraz a po jego przerobieniu powtórzenie materiału we własnym zakresie.

Jak najlepiej wykorzystać kurs?

Potraktuj kurs jako inspirację do własnej pracy. Tam, gdzie się da staraj się powtarzać czynności, które wykonuje autor. Nie powtarzaj ich jednak bezmyślnie - spróbuj zmodyfikować przykłady i dostosować je do swoich potrzeb. W ten sposób przyswoisz materiał jeszcze lepiej!

Jak mogę uzyskać dostęp do kursu?

Możesz albo wykupić ten konkretny kurs przez koszyk, uzyskując do niego (i jego rewizji) bezterminowy dostęp, albo wykupić wariant abonamentu, który obejmuje dany kurs i w ten sposób oglądać go oraz inne materiały na platformie tak długo, jak Twój abonament jest aktywny.

Czy kurs jest aktualny?

Staramy się aby wszystkie materiały na stronie były aktualne. Nie znaczy to, że kurs powstał bardzo niedawno. Często na stronie znajdziesz trochę starsze kursy, jednak regularnie wykonujemy ich rewizję i zmieniamy lekcje - czy to przez dodanie stosownych komentarzy z aktualizacją, czy poprzez nagranie danej lekcji jeszcze raz. Datę ostatniej rewizji znajdziesz w informacjach o kursie.

Czym się różni kurs od warsztatu i ścieżki?

Kursy to kilku godzinne, kompleksowe opracowanie danego zagadnienia, podzielone na lekcje i rozdziały. Często uzupełniają je Warsztaty, które mają formę jednej dłuższej, praktycznej lekcji (30min-1h), natomiast ścieżki stanowią zbiór jednych i drugich materiałów - ułożoną z kursów i warsztatów playlistę, która pozwala Ci kompleksowo opanować dane zagadnienie.

We frontendzie nie można stać w miejscu, niezależnie od tego, czy jest się początkującym, czy zaawansowanym. Narzędzia i techniki się zmieniają, więc trzeba cały czas trzymać rękę na pulsie. Jako twórca kursów i programista mogę spokojnie polecić eduweb.pl jako aktualne i dobre źródło wiedzy.

Adam Romański

helloroman.com

Zacznij naukę w Asynchroniczność w JavaScript

  • 1 lekcji wideo

  • 41min materiału

  • Ostatnia rewizja 20.01.2021

  • Certyfikat w ramach ścieżek

  • Dostęp z urządzeń mobilnych