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).