Co blokuje pętlę zdarzeń i dlaczego async nie przenosi obliczeń na inny wątek?
Najpierw odpowiedz na głos lub w myślach, potem porównaj.
Odpowiedź
async pozwala wygodnie czekać na wynik, ale zwykłe obliczenia w tej funkcji nadal wykonują się na jej wątku. Jeśli przez kilka sekund liczę coś w pętli, inne zadania oczekujące na ten sam wątek muszą czekać. To może opóźnić wiele odpowiedzi serwera.
Przy czekaniu na sieć sytuacja jest inna: środowisko może w tym czasie obsługiwać inne operacje. Dlatego najpierw ustalam, czy problemem jest czekanie, czy liczenie. Ciężkie przetwarzanie plików mogę przenieść do osobnego wątku lub procesu. Samo dopisanie await do niewłaściwego miejsca nie zwiększy mocy procesora i nie rozwiąże blokowania.
Dlaczego to ważne: Sprawdza rozumienie działania Node, a nie tylko składnię async.
Możliwe dopytania: Jak rozpoznasz, że serwer jest wolny przez obliczenia, a nie bazę?
Jak poszło? Bądź szczery — „Jeszcze nie” dodaje pytanie do powtórki.
Zacznij od
- B-P01 · Czym jest Node.js i czym różni się od JavaScriptu w przeglądarce? — JavaScript, TypeScript i Node.js
- B-P04 · Co to jest Promise? — JavaScript, TypeScript i Node.js
- B-P10 · Co daje TypeScript i czego nie daje? — JavaScript, TypeScript i Node.js
Powiązane pytania
Dalsza lektura
- Node.js: The Event Loop(otwiera się w nowej karcie)Docs; dostęp 22.10.2026. Fazy event loop, timery i zależności od wersji Node/libuv.