register
[ Funktion ]
static register(
name: string,
callback: (e: EventProvider.Event, ...data: any[]) => void,
options?: object
): TcHmi.DestroyFunction;
Registriert einen Callback zu einem Event und liefert eine Funktion zum Abmelden des Events zurück.
Wird ein Event nicht mehr benötigt sollte es abgemeldet werden um Speicherlecks (mem leaks) zu vermeiden.
Das System bietet zwei Möglichkeiten zum Abmelden:
- Rückgabewert des Register-Aufrufs: Hierzu wird der Rückgabewert gespeichert und beispielsweise im destroy eines Controls aufgerufen.
- Erster Parameter im callback. Soll beispielsweise ein Callback nur einmal aufgerufen werden, so kann innerhalb des callbacks die Registrierung beendet werden.
Beide Möglichkeiten werden im unten angegebenen Beispiel benutzt.
Parameter
Name | Typ | Beschreibung |
---|---|---|
name | Name des Events | |
callback | (e: EventProvider.Event, ...data: any[]) => void; | Callback Funktion welche bei diesen Ereignissen aufgerufen werden soll. Diese Funktion erhält ein Event-Objekt und optional weitere Parameter. Nicht jedes Event liefert diese mit. |
options [ Optional ] Verfügbar ab Version 1.10 | object | JSON-Objekt mit Einstellungswerten. |
Rückgabewert
Typ | Beschreibung |
---|---|
Meldet das Event ab und gibt alle zugehörigen Ressourcen frei wenn aufgerufen. |
Verfügbar ab Version 1.8 |
Beispiel - JavaScript
var destroyEvent = TcHmi.EventProvider.register(
'TcHmiButton.onPressed',
function (evt, data) {
// Do stuff
console.log(evt);
if(data){
// some events have custom data
console.log(data);
}
// …
// Destroy to free event resources if event is no longer needed.
evt.destroy();
}
);
var timeoutID = setTimeout(function () {
// Remove register after 5 seconds as an example
destroyEvent();
}, 5000);