Chakra – ready for ECMAScript2016

Microsoft Edge bereit für asynchrone JavaScript-Funktionen
Keine Kommentare

Die ECMAScript215-Spezifikation wird noch nicht vollständig von allen Browsern unterstützt, schon machen sich die ersten daran, erste Features aus ES2016 in Angriff zu nehmen. Genauer gesagt geht es um das Thema asynchrone Funktionen in JavaScript; Microsoft Edge bietet nun mit einem experimentellen Feature eine erste Preview.

Während man bei Microsoft noch dabei ist, das ECMAScript2015-Featureset in Edge abzurunden, ist man bereits fleißig dabei, erste ES2016-Features zu implementieren; zumindest auf experimenteller Basis. JavaScript-Entwickler, die einen Edge zur Verfügung haben, können ab EdgeHTML im Build 13.10547 auf die Keywords async und await zurückgreifen.

Asynchrones JavaScript in Microsoft Edge

In der aktuellen Preview-Version des Microsoft Edge hat das Chakra-Team ein kleines Goodie versteckt, das viele JavaScript-Entwickler bereits sehnlichst erwarten dürften: asynchrone Funktionen via async und await.

In Microsofts neuem Browser setzt die asynchrone Funktionalität dabei auf Promises auf, die mit ECMASCript2015 eingeführt wurden. Die seien, so das Edge-Team im Blogpost Asynchronous code gets easier with ES2016 Asynt Function support in Chakra and Microsoft Edge, bereits ein erster wichtiger Schritt zum Erfolg:

Async Functions are based on Promises, but take them a step further. When you add an async keyword to a function or an arrow function it will automatically return a Promise.

Das sorgt natürlich dafür, dass asynchrone Funktionen im Edge einige besonderheiten Aufweisen. So ist es beispielsweise aufgrund der Implementierung nicht möglich, await außerhalb einer async-Funktion zu verwenden – auch nicht im globalen Scope. Lässt man await komplett weg, erhält man ein Promise; nutzt man es, um die Beendigung einer async-Funktion abzuwarten, erhält man das Ergebnis des Promises.

Darüber hinaus lässt sich async mit jeder Funktion oder Arrow-Funktion verwenden.

Angular Camp - Deep Dive im April

Deep Dive im April

Das Online-Camp für fortgeschrittene Angular-Entwickler:innen.

Basic Camp im Juni 

Lerne Angular Schritt für Schritt.

async und await in Chakra

Natürlich interessiert gerade bei dieser Implementierung die Frage danach, wie es unter der Haube aussieht. Auch hierzu bietet der genannte Blogpost einige spannende Einblicke.

So generiert async mit dem in Chakra eingebauten Bytecode-Generator einen Promise-Konstruktor, der die gewünschte Funktion einschließt; damit entscheidet die Engine, welche Prozesse zu welchen Zeitpunkt angehalten oder weitergeführt werden. Kommt es nun beispielsweise zu einem Fehler innerhalb der async-Funktion, schlägt das Promise fehl und der Fehler kann an anderer Stelle abgefangen werden.

Über die generelle Architektur von Chakra hatten wir übrigens in der Vergangenheit bereits berichtet; ein detailliertes Beispiel zum Ablauf von async / await findet man im Blogpost.

Einen kleinen Einblick in die Hintergründe und die Funktionsweise bietet Etienne Baudoux vom Microsoft Chakra Team darüber hinaus in folgendem Video:

Async NOW

Wer mit asynchronen JavaScript-Funktionen in Microsoft Edge experimentieren möchte, benötigt die Preview-Version 13.10547, die über das Windows Insider Program erhältlich ist.

Nach dem Download genügt ein about:flags in der Adresszeile, um zu den Einstellungen zu gelangen. Dort muss nur die Checkbox „Enable experimental JavaScript features“ aktiviert werden – und schon beginnt die Zukunft.

webinale – the holistic web conference

Webperformance und Page Speed 2021

mit Sven Wolfermann (maddesigns)

UX Design: Kitsch – du willst es doch auch!

mit Lutz Schmitt (Lutz Schmitt Design & Consulting)

 

Software Architecture Camp

Advanced Web Pentesting

mit Christian Schneider (Schneider IT-Security)

What Star Wars Taught Me About Secure System Design

mit Anne Oikarinen (Nixu Corporation)

 

 

Aufmacherbild: Man and woman making a pinkie promise. Hands isolated on white background. von Shutterstock / Urheberrecht: HakielBerry

Unsere Redaktion empfiehlt:

Relevante Beiträge

Abonnieren
Benachrichtige mich bei
guest
0 Comments
Inline Feedbacks
View all comments
X
- Gib Deinen Standort ein -
- or -