Blog

Umgang mit JavaScript-Versprechen in OutSystems

Ellis van der Slikke

Aktualisiert Oktober 15, 2025
5 Minuten

Ich bin jemand, der sich sehr für JavaScript interessiert. Auch wenn ich nie als Vollzeit-JavaScript-Entwickler gearbeitet habe, nehme ich mir immer Zeit, um zu üben und verschiedene Aspekte der Sprache zu erkunden. Von der Arbeit mit Plugins und jQuery bis hin zur Bewältigung arbeitsbezogener Aufgaben habe ich mich immer der Verbesserung meiner JavaScript-Kenntnisse gewidmet. Obwohl ich nicht über umfassende Kenntnisse aller Best Practices und Marktstandards verfüge, habe ich mich davon nie abhalten lassen. Ich habe mich nie gescheut, eine Herausforderung anzunehmen oder ein Projekt abzuliefern, auch wenn es ein tieferes Verständnis von JavaScript erfordert. Entgegen der landläufigen Meinung galt JavaScript früher als synchrone Sprache. Im Laufe der Jahre wurden jedoch verschiedene Mechanismen entwickelt, um die Technologie zu verbessern und die Wahl zwischen synchroner und asynchroner Programmierung zu ermöglichen. OutSystems bietet Entwicklern die Möglichkeit, die Plattform mit JavaScript, HTML, CSS und sogar .NET zu erweitern. Daher ist es für Entwickler wichtig, dass sie die asynchronen Fähigkeiten von JavaScript gut verstehen. In diesem Artikel werden wir verschiedene Mechanismen untersuchen, die Ihren JavaScript-Code asynchron machen können, darunter:

Rückrufe

In den Anfängen von JavaScript waren Callbacks der wichtigste asynchrone Mechanismus. Das bedeutet, dass Sie eine Funktion als Parameter an eine andere Funktion übergeben, die sie ausführt, wenn die Aufgabe abgeschlossen ist. Dieser Mechanismus funktioniert zwar, führt aber zu einer Callback-Hölle, d.h. zu einer Kette von verschachtelten Callbacks, die das Lesen und Warten des Codes erschweren.

Versprechen (ES6)

Um die Einschränkungen von Callbacks zu überwinden, wurde in JavaScript das Promise-Objekt eingeführt. Ein Promise stellt das Ergebnis einer asynchronen Operation dar und kann sich in einem von drei Zuständen befinden: ausstehend, erfüllt oder abgelehnt. Promises ermöglichen es Entwicklern, asynchronen Code zu schreiben, der synchron aussieht und die Callback-Hölle zu vermeiden.

Async/Wartezeit (ES7)

Async/await ist die neueste Ergänzung zu den asynchronen Programmiermechanismen in JavaScript. Es ermöglicht Entwicklern, asynchronen Code zu schreiben, der wie synchroner Code aussieht, wodurch er leichter zu lesen und zu pflegen ist. Mit async/await können Sie asynchrone Funktionen schreiben, die wie synchrone Funktionen aussehen und das Schlüsselwort await verwenden, um auf das Ergebnis einer asynchronen Operation zu warten.

Was sind Versprechen?

Promises sind, wie der Name schon sagt, Zustände für asynchrone Mechanismen. Der Name ist recht passend, wenn Sie ihn mit den Promises in unserer realen Welt in Verbindung bringen. Wenn Ihnen jemand etwas verspricht, dann müssen Sie darauf warten, dass das Versprechen entweder eingehalten wird, d.h. dass es wie versprochen erfüllt wurde, oder dass es gebrochen wird, falls derjenige, der es versprochen hat, nicht tut, was er tun sollte. Das bedeutet aber keineswegs, dass Sie warten und nichts tun müssen. In der Zwischenzeit können Sie Ihr Leben weiterleben und Sie werden wissen, wann es abgeschlossen ist. Dies ist also ein asynchroner Prozess. Um zur technischen Seite der Dinge zu kommen, ist ein Versprechen in JavaScript nichts anderes als ein asynchroner Mechanismus, der es Ihnen ermöglicht, eine bestimmte Funktion aufzurufen, und Ihr Code kann weiterlaufen, bis er eine Rückmeldung von der aufgerufenen asynchronen Funktion erhält.

Hier ist eine sehr gute Definition von Mozilla:

[caption id="" align="alignnone" width="801"]William Artikel -Bild 1 Quelle: https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Global_Objects/Promise[/caption]

Wie kann man Versprechen erkennen?

Ein JavaScript-Promise kann durch seine Syntax und sein Verhalten identifiziert werden. Syntax: Ein Promise in JavaScript ist ein Objekt, das mit dem Promise-Konstruktor erstellt wird und in der Regel mit einer .then()-Methode versehen ist. Die .then()-Methode wird verwendet, um festzulegen, was passieren soll, wenn das Promise aufgelöst (erfüllt) oder abgelehnt wird. Schauen wir uns an, wie ein Standardversprechen aussieht: William.Artikel- Bild2 Wenn ich diesen Code in der Konsole ausführe, erhalte ich folgendes Ergebnis: William.Artikel.Bild3 Das bedeutet also, dass die Rückgabe des Versprechens noch nicht ausgefüllt wurde, dies aber tun wird, sobald es den aufgelösten Zustand erreicht. Da es sich um einen asynchronen Mechanismus handelt, müssen wir das Ergebnis behandeln, nachdem das Versprechen aufgelöst wurde, und so machen wir es: William.Artikel.Bild4 Wenn ich dies in der Konsole ausführe, können wir sehen, dass das Ergebnis wie erwartet behandelt wurde: William.Artikel.Bild5

Wie verwendet man Versprechen in OutSystems?

Hier ist ein einfaches Beispiel dafür, wie wir Versprechen in der Plattform verwenden können. In diesem Fall erstellen wir ein Versprechen und lassen es "warten", bis es durch einen Klick auf eine andere Schaltfläche aufgelöst wird. William.Artikel.Bild6 Ich habe das obige Stück Code zu meinem OnReady: William.Artikel.Bild7 Die BtnId stammt von einer Schaltfläche, die sich auf meinem Bildschirm befindet und nichts tut, so dass ihre Klick-Aktion leer ist: william.artikel.bild8

Wenn ich es also veröffentliche und teste, passiert Folgendes:

william.artikel.bild9 Das Beispiel in diesem Artikel zeigt, wie Promises verwendet werden können, um den Code nur aufzulösen, wenn eine Schaltfläche angeklickt wird. Bis das Promise erfüllt oder abgelehnt wird, bleibt der Code inaktiv. Dies ist zwar ein einfaches Beispiel, aber es zeigt das Potenzial von Promises, insbesondere bei der Front-End-Entwicklung. Es ist jedoch wichtig zu bedenken, dass eine übermäßige Verwendung von Promises die Leistung des Clients beeinträchtigen kann. Zusammenfassend lässt sich sagen, dass Promises ein nützliches Tool für die asynchrone Programmierung in der Frontend-Entwicklung sind und das Benutzererlebnis verbessern können, ohne dass der Benutzer auf die Auflösung des Promises warten muss. Aber wie bei jedem Tool sollten sie mit Bedacht eingesetzt werden, um eine optimale Leistung zu gewährleisten.

Verfasst von

Ellis van der Slikke

Contact

Let’s discuss how we can support your journey.