MySQL Java JavaScript PHP Python HTML-CSS C-sharp

Importul modulului

Pentru a importa un modul în alt modul, este suficient să scrii operatorul import și să-i transmiți calea către modulul importat:

import "calea_către_modul";

De exemplu, să presupunem că avem următorul modul message.js

const messageText = "Hello FDC.COM";
console.log(messageText);

De fapt, acest modul arată ca un script obișnuit, care definește o variabilă și afișează valoarea acesteia în consolă folosind funcția console.log().

Și să definim în aceeași folder fișierul main.js, în care vom conecta modulul message.js definit anterior:

import "./message.js";

Aici pur și simplu importăm modulul message.js. În acest caz, se presupune că ambele module - main.js și message.js se află în aceeași folder, astfel la import este specificată calea "./message.js", unde "./" indică aceeași folder în care se află fișierul main.js.

Să presupunem că avem o pagină HTML index.html, pe care este conectat fișierul main.js:

<!DOCTYPE html>
<html>
<head>
   <meta charset="utf-8" />
   <title>FDC.COM</title>
</head>
<body>
<script type="module" src="main.js"></script>
</body>
</html>

În final, la executarea paginii în browser, în consola acestuia vom vedea rezultatul funcționării componentelor modulului conectat:

Hello FDC.COM

La astfel de conectare, vor fi executate toate apelurile de funcții din modulul message.js, însă toate componentele definite și neexportate în acest modul vor fi inaccesibile din exterior. Astfel, nu putem în modulul main.js să scriem așa:

import "./message.js";

console.log(messageText);   // Eroare ReferenceError: messageText is not defined

Deși am conectat modulul message.js, variabila sa messageText nu ne este accesibilă. Deoarece nu este exportată și, respectiv, aici nu o putem importa și utiliza.

Acest mod de import poate părea inutil. Cu toate acestea, putem profita de avantajele modulului, de exemplu, posibilitatea de a folosi expresii await fără a defini funcții asincrone. De exemplu, să modificăm modulul message.js în următorul mod:

const sum = (x, y) => Promise.resolve(x + y);
 
const value = await sum(5, 3);
console.log("Rezultatul operațiunii asincrone:", value);

Pentru simplitate, aici este definită constanta sum, care reprezintă un promis pentru calcularea sumei a două numere. Și modulul ne permite să folosim expresii await la nivelul superior pentru a obține rezultatul din promis fără a defini și apela o funcție asincronă.

← Lecția anterioară Lecția următoare →