withTimeout()

Der enaio-Vertrag definiert keine Antwortgarantie. withTimeout ist das Primitiv, das jede Host-Interaktion, die auf eine Antwort wartet, begrenzt — die init-Wartung, die Fassaden-Methodenaufrufe, alles.

1. Signatur

withTimeout<T>(
    work: () => PromiseLike<T>,
    timeoutMs: number,
    operation?: string,   // standardmäßig 'host wait'
): Promise<T>;

Rennen Sie work() gegen einen Timer:

  • löst sich mit dem Arbeitsergebnis, wenn dieses zuerst eintritt;

  • wird mit TimeoutError(operation, timeoutMs) abgelehnt, wenn die Grenze zuerst verstreicht;

  • räumt den Timer immer auf (und unref-t ihn, wo die API existiert, damit interne Bibliothek-Timer einen Node-Prozess nie am Leben erhalten).

Ein work, das nach der Grenze eintritt, wird ignoriert (erstes Eintreten gewinnt).

2. Konstanten

DEFAULT_TIMEOUT_MS   // 5000 — der vorgegebene Antwort-Timeout in ms

Sowohl DEFAULT_TIMEOUT_MS als auch TimeoutError werden aus dem Paketstamm exportiert (siehe Fehlermodell für die vollständige Fehlerklassifizierung; DashletOptions.timeoutMs ist, wie die Grenze konfiguriert wird).