javascript / expert
Snippet
Deterministisches Ressourcenmanagement mit expliziter Freigabe
Die Explicit Resource Management API führt das Schlüsselwort 'using' ein, um den Lebenszyklus von Objekten zu verwalten, die Symbol.dispose implementieren. Dies stellt sicher, dass Ressourcen wie Dateihandles oder Datenbankverbindungen sofort beim Verlassen des Scopes geschlossen werden, was Speicherlecks und Ressourcenerschöpfung verhindert, ohne sich allein auf den Garbage Collector zu verlassen.
snippet.js
1
2
3
4
5
6
7
8
9
10
11
12
13
class DatabaseConnection {#client;constructor() { this.#client = 'connected'; }[Symbol.dispose]() {this.#client = null;console.log('Resource released automatically');}}{using db = new DatabaseConnection();// Work with db...} // Resource is disposed here even if an error is thrown
nodejs
Erklärung
1
using db = new DatabaseConnection();
Deklariert eine Ressource, die an den aktuellen Block-Scope gebunden ist.
2
[Symbol.dispose]() { ... }
Die Protokollmethode, die automatisch aufgerufen wird, wenn der Scope endet.