AsyncDisposableStack.prototype.use()
use() 方法是 AsyncDisposableStack 例項上的一種方法,用於將實現了 非同步可處置協議 的值註冊到堆疊。
有關 use() 方法的一般資訊,請參閱 DisposableStack.prototype.use()。
語法
js
use(value)
引數
value-
要註冊到堆疊的值。必須包含
[Symbol.asyncDispose]()或[Symbol.dispose]()方法,或者為null或undefined。
返回值
傳入的 value 相同。
異常
TypeError-
如果
value不是null或undefined,並且不包含[Symbol.asyncDispose]()或[Symbol.dispose]()方法,則會丟擲異常。 ReferenceError-
如果堆疊已被處置,則丟擲異常。
示例
使用 use()
此函式讀取檔案(作為 Node.js 的 FileHandle)並返回其內容。在函式完成時,檔案控制代碼會自動關閉,前提是 FileHandle 類實現了非同步關閉檔案的 [Symbol.asyncDispose]() 方法。
js
async function readFileContents(path) {
await using disposer = new AsyncDisposableStack();
const handle = disposer.use(fs.open(path));
const data = await handle.read();
return data;
// The disposer is disposed here, which causes handle to be closed too
}
規範
| 規範 |
|---|
| ECMAScript 非同步顯式資源管理 # sec-asyncdisposablestack.prototype.use |
瀏覽器相容性
載入中…