Node.js version 18 løfter sløret for ny download og streams

Node.js version 18 løfter sløret for ny download og streams
Illustration: Milkos/Bigstock.
Masser af nyheder i seneste aftapning af det populære Javascript-miljø.
20. april kl. 12:32
errorÆldre end 30 dage

Javascript-miljøet Node.js er nedkommet med version 18, der byder på et fyldigt udvalg af nyheder.

Først på dagsordenen er den nye standardiserede fetch-funktion, der afløser tidligere tiders ajax-funktionalitet med XMLHttpRequest. Implementeringen i Node.js er eksperimential indtil videre, skrives der. Det kan se sådan ud:

  1. const res = await fetch('https://nodejs.org/api/documentation.json');
  2. if (res.ok) {
  3. const data = await res.json();
  4. console.log(data);
  5. }

Implementeringen bestræber sig på at være så tæt på specifikationen som muligt, men nogle aspekter ville kræve et browsermiljø og er derfor udeladt, noterer udviklerne.

En anden nyhed er Web Streams, der også stammer fra browsernes Javascript-verden. Det giver mulighed for at via Javaccript at få programmatisk adgang til datastrømme, der modtages via netværket, og behandle dem efter udviklerens forgodtbefindende.

Artiklen fortsætter efter annoncen

Det en nyhed for Javascript. Hvis man tidligere ville behandle en ressource af en eller anden art, så som en video eller en tekstfil, skulle hele filen downloades og deserialiseres til et passende format, før udvikleren kunne behandle data. Web Streams udmøntes konkret i en lang række objekter, så som ReadableStream, WritableStream og mange flere.

Blandt andre nyheder er Blob, der nu er moden til produktion. En Blob indkapsler uforanderlige, rå data, der kan deles sikkert på tværs af flere arbejdstråde, og sættes i verden således:

new buffer.Blob([sources[, options]]])

Også moden til brug er BroadcastChannel, som muliggør asynkron én-til-mange-kommunikation.

Helt nyt er et test-modul, som endnu betegnes som eksperimentielt:

  1. test('top level test', async (t) => {
  2. await t.test('subtest 1', (t) => {
  3. assert.strictEqual(1, 1);
  4. });
  5.  
  6. await t.test('subtest 2', (t) => {
  7. assert.strictEqual(2, 2);
  8. });
  9. });

Modulet gør det nemmere at oprette tests, der skriver resultaterne i det såkaldte TAP-format, som er en simpel tekstbaseret snitflade mellem testmoduler. Det skulle afkoble fejlrapporteringen fra præsentationen af rapporterne.

Der er flere nyheder i den nye udgave, og det kan man læse om i Node.js' meddelelse.

Ingen kommentarer endnu.  Start debatten
Debatten
Log ind for at deltage i debatten.
settingsDebatindstillinger