Symbol.dispose
Symbol.dispose 靜態資料屬性表示 知名 Symbol Symbol.dispose。 using 宣告會在變數離開作用域時查詢變數初始化器上的此 Symbol,並呼叫對應的方法。
值
知名 Symbol Symbol.dispose。
Symbol.dispose 的屬性特性 | |
|---|---|
| 可寫 | 否 |
| 可列舉 | 否 |
| 可配置 | 否 |
描述
如果一個物件具有 [Symbol.dispose]() 方法,則該物件是可處置的。該方法應遵循以下語義:
- 呼叫此方法表示呼叫者不再打算繼續使用該物件。此方法應執行任何必要的邏輯來顯式清理資源,包括但不限於檔案系統控制代碼、流、宿主物件等。
- 當從該方法中丟擲異常時,通常意味著資源未能被顯式釋放。
- 如果對同一物件呼叫該函式一次以上,函式不應丟擲異常。但是,此要求並未強制執行。
此方法不應返回 Promise,因為 [Symbol.dispose]() 返回的 Promise 不會被 await using 等待。要宣告非同步可處置物件,請使用 Symbol.asyncDispose。
示例
使用者自定義的可處置物件
[Symbol.dispose] 允許建立自定義的可處置物件。有關更多資訊,請參閱 using 參考。
js
class Disposable {
constructor() {
this.disposed = false;
}
[Symbol.dispose]() {
this.disposed = true;
}
get isDisposed() {
return this.disposed;
}
}
const resource = new Disposable();
{
using resourceUsed = resource;
console.log(resource.isDisposed); // false
}
console.log(resource.isDisposed); // true
規範
| 規範 |
|---|
| ECMAScript 非同步顯式資源管理 # 表格-1 |
瀏覽器相容性
載入中…