Ta lekcja jest w bazie eduweb

Zaloguj się kontem z dostępem albo wykup dostęp do bazy, żeby obejrzeć wideo.

Lekcja 1/ 1Asynchroniczność w JavaScript

0:00 / 0:00

Asynchroniczność w JavaScript

41 min wideo1 lekcja

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

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.

Kurs Asynchroniczność w JavaScript

1 lekcja41min

  • Asynchroniczność w JavaScript41min(zablokowana)

Ten kurs jest w bazie eduweb

Dostęp do wszystkich kursów z bazy eduweb za 199 zł/mies.

Wykup dostęp do bazy

Autor kursu

Średnia ocen autora: 4,7

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.