JavaScript · Senior · Pytanie 35 z 75

Co może się stać przy cyklicznej zależności między modułami ES?

// a.js
import { b } from "./b.js";
export const a = "A" + b;
// b.js
import { a } from "./a.js";
export const b = "B" + a;

Wyjaśnienie

Moduły wykonują się w kolejności grafu; przy cyklu jeden z nich zaczyna działać, gdy eksport drugiego jest jeszcze w TDZ. Z var dostalibyśmy undefined; z const/let/klasami - błąd. Rozwiązanie: wynieść wspólny kod do trzeciego modułu lub odwoływać się do importu leniwie wewnątrz funkcji.

Do poczytania

Błąd w pytaniu

JavaScript · Senior · pytanie 35

Sprawdź się

Rozwiąż test JavaScript · Senior: pytania i odpowiedzi są tasowane, a na końcu czeka przegląd błędów.

Rozwiąż ten test