init (das init-Promise)
Das init-Promise des Dashlet-Handles: der einzelne
Punkt, an dem das Dashlet weiß, in welcher Umgebung es läuft und was der
Host ihm über Auswahl, Sitzung und Benutzer mitgeteilt hat.
1. Signatur
readonly init: Promise<InitContext>;
Es wird beim Installieren des Dashlets erzeugt und ändert sich nie. Es löst
sich in jeder Umgebung in den normalisierten InitContext
auf — die Umgebung ändert nur, wie das Promise sich auflöst, nicht in
was es sich auflöst.
2. Garantien
-
Löst sich genau einmal auf. Die Zustandsmaschine löst sich aus
detectinggenau einmal; spätere Init-Events (Dashboard- Zurück-Schalten, Rich-Client-Callbacks) werden überonInit/onUpdateerneut emittiert, nicht über das Promise. -
Wird niemals abgelehnt. Es gibt keinen Ablehnungspfad am Promise — der Standalone-Degradationszustand ist ein beobachtbarer Fallback, kein Fehler (Standalone-Betrieb).
-
Begrenzt. Es kann nicht hängen bleiben: die Erkennungs-Obergrenze (
detectionTimeoutMs, Standard 5000 ms) löst es als Standalone auf, und ein Sicherheitsnetz-Timeout (`detectionTimeoutMs + 250 ms) umhüllt die Erkennung selbst.
3. Wie es sich pro Umgebung auflöst
| Umgebung | Auflöse-Ereignis | source der aufgelösten Emission |
|---|---|---|
webclient |
Das erste |
|
rich client |
Entweder der Bridge-Lesevorgang (Selbst-Initialisierung, wenn
|
|
standalone |
Die Erkennungs-Obergrenze lief ab ohne Bridge und ohne akzeptiertes Event — oder das Dashlet wurde noch im Erkennungszustand zerstört (destroy löst es zuerst als Standalone auf) |
|
Die Auflösung feuert alle onInit-Listener mit demselben Kontext und dem
entsprechenden InitSource aus; die
Promise-Auflösung erfolgt genau bei der ersten Auflösung.
4. Beispiele
const dashlet = installDashletGlobal({});
dashlet.init.then((ctx) => {
// ctx: InitContext — identische Form in allen drei Umgebungen
console.log(ctx.environment); // 'webclient' | 'richClient' | 'standalone'
render(ctx);
});
// oder
const ctx = await dashlet.init;
Siehe Schnellstart für das vollständige minimale Dashlet.