Denne gang får Javascript asynkrone funktioner med ECMAScript 2017

3. februar 2017 kl. 14:284
Denne gang får Javascript asynkrone funktioner med ECMAScript 2017
Illustration: Jesper Stein Sandal.
Asynkrone funktioner bliver forenklet med den kommende version af Javascript.
Artiklen er ældre end 30 dage
Manglende links i teksten kan sandsynligvis findes i bunden af artiklen.

Det skulle gerne blive lidt enklere at skrive asynkrone funktioner i Javascript fremover. Den kommende standard, ECMAScript 2017 får nemlig det nye async-keyword, skriver InfoWorld.

ECMAScript 2017 er den standard, Javascript bygger på, og 2017-udgaven får altså en ny måde at understøtte asynkrone funktioner på.

En Javascript-funktion vil normalt blokere procestråden, indtil den er udført. Det er ikke altid optimalt, og det har blandt andet Node.js løst ved at gøre funktioner i stand til at afvente et svar fra en anden funktion ved hjælp af callbacks, som ikke blokerer programmet. Javascript har også fået callbacks, og de bliver nu lidt enklere at håndtere med den nye udgave.

Javascript har nemlig brugt Promises til at håndtere asynkrone callbacks, men det var ikke nødvendigvis den mest elegante løsning i forhold til de frameworks og overbygninger til Javascript, som også har haft deres understøttelse af asynkrone funktioner.

Artiklen fortsætter efter annoncen

Det nye async-keyword kombineret med await-keywordet skulle gøre ECMAScript-implementeringen mere enkel.

Async og await er allerede understøttet af Chrome-browseren og vil blive det i næste udgave af Firefox. Selve standarden ECMAScript 2017 ventes dog først at være endelig godkendt i juni ifølge InfoWorld.

4 kommentarer.  Hop til 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
4
19. april 2017 kl. 18:31

Har du dårlige erfaringer med eksempelvis Babel og regenerator til at understøtte async/await? "Mareridtsagtigt" lyder jo ikke specielt tiltalende ;-)

3
19. april 2017 kl. 18:28

Jeg kan ikke se hvorfor man nødvendigvis skal benytte TypeScript for at anvende ny javascript-funktionalitet. Babel har nogenlunde lige så god support for at oversætte moderne JavaScript til ES5, og har da også understøttet async/await i over et år.

2
5. februar 2017 kl. 16:44

Til at bruge disse nye funktioner.

Vi kan jo ikke bare begynde at bruge en ny sexet funktion, der kun er understøttet hos de nyeste brugere. Der sidder masser af folk med IE9-11 også.

TypeScript spiller sgu, der kan vi få lov at bruge det alligevel. Kan anbefales.

1
5. februar 2017 kl. 11:50

For en ordens skyld var Edge den første browser til at understøtte

  1. async
/
  1. await
, og featuren blev forfremmet fra eksperimentiel til default slået til dec 2016 kom først med i med Chrome 55, 01.12.2016.
  1. async
ser allerede ud til at have opnået udbredelse på niveau med de lidt ældre promises, dvs alle desktopbrowsere samt nogle få eller ingen mobile.

Men er browserunderstøttelse overhovedet interessant? Mulighed for et simpelt, ikke-mareridtsagtigt fallback findes ikke, så den praktiske anvendelse begrænser sig vel stadig til

  1. node
.