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

20. april 2022 kl. 12:32
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ø.
Artiklen er æ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:

  1. 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
Denne artikel er gratis...

...men det er dyrt at lave god journalistik. Derfor beder vi dig overveje at tegne abonnement på Version2.

Digitaliseringen buldrer derudaf, og it-folkene tegner fremtidens Danmark. Derfor er det vigtigere end nogensinde med et kvalificeret bud på, hvordan it bedst kan være med til at udvikle det danske samfund og erhvervsliv.

Og der har aldrig været mere akut brug for en kritisk vagthund, der råber op, når der tages forkerte it-beslutninger.

Den rolle har Version2 indtaget siden 2006 - og det bliver vi ved med.

Debatten
Log ind eller opret en bruger for at deltage i debatten.
settingsDebatindstillinger