Einführung in die asynchrone JavaScript-Programmierung

Fazit

Die Unsicherheit der Vergangenheit, welchen Ansatz man für die asynchrone Programmierung verwenden sollte, geht langsam zu Ende: JavaScript unterstützt Promises und wird in der kommenden Version ES7 die beiden neuen Schlüsselwörter async und await enthalten, die den Umgang mit Promises durch eine elegante Syntax vereinfachen.

Es gibt folglich keinen Grund mehr, neuen APIs keine Promises zugrunde zu legen, um für die Zukunft gerüstet zu sein. Da Promises als Bestandteil von ES2015 mit Ausnahme des Internet Explorer durchgängig verfügbar sind, ist hierfür in vielen Fällen noch nicht einmal ein Polyfill erforderlich.

Da die Schlüsselwörter async und await syntaktisch stark an ihre Vorbilder in C# angelehnt sind, ist davon auszugehen, dass sich an ihrer Syntax nicht mehr viel verändert. Daher spricht nichts dagegen, sie in Verbindung mit Babel zu verwenden, zumal sich das Projekt ohnehin mehr und mehr als De-facto-Standard im Bereich der JavaScript-Compiler etabliert.

Die größte Herausforderung bei all dem ist, das riesige Ökosystem von JavaScript und Node.js nach und nach zu portieren. Der Einsatz von Funktionen wie promisify ist dauerhaft nur als Workaround anzusehen und sollte langfristig vermieden werden. Bis dahin leistet die Funktion allerdings gute Dienste, um eine Brücke zwischen alter und neuer Welt zu schlagen. (jul)

Golo Roden
ist Gründer der "the native web UG", eines auf native Webtechniken spezialisierten Unternehmens. Für die Entwicklung moderner Webanwendungen bevorzugt er JavaScript und Node.js und hat mit "Node.js & Co." das erste deutschsprachige Buch zum Thema geschrieben.