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 detecting genau einmal; spätere Init-Events (Dashboard- Zurück-Schalten, Rich-Client-Callbacks) werden über onInit/onUpdate erneut 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 onInit, das die Origin-Validierung akzeptiert (der vom Host deklarierte Client-Typ rich_client leitet es auf die Rich-Client-Auflösung um)

webclientEvent

rich client

Entweder der Bridge-Lesevorgang (Selbst-Initialisierung, wenn window.osClient erscheint) oder der erste osDashletInit-Host-Callback — je nachdem, was zuerst kommt

richClientSelfInit oder richClientCallback

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)

standalone

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.