AsyncDisposableStack.prototype.defer()
AsyncDisposableStack 例項的 defer() 方法接受一個回撥函式,該函式將在堆疊被釋放時被呼叫並等待。
有關 defer() 方法的一般資訊,請參閱 DisposableStack.prototype.defer()。
語法
js
defer(onDispose)
引數
onDispose-
一個將在堆疊被釋放時呼叫的函式。該函式不接收任何引數,並且可以返回一個會被等待的 Promise。
返回值
無(undefined)。
異常
TypeError-
如果
onDispose不是函式,則丟擲異常。 ReferenceError-
如果堆疊已被處置,則丟擲異常。
示例
使用 defer()
defer() 的一個用例是在作用域退出時執行與資源釋放無關的操作,例如記錄一條訊息。
js
async function doSomething() {
await using disposer = new AsyncDisposableStack();
disposer.defer(async () => {
await fs.writeFile("log.txt", "All resources freed successfully");
});
// Other code that claims and frees more data
}
規範
| 規範 |
|---|
| ECMAScript 非同步顯式資源管理 # sec-asyncdisposablestack.prototype.defer |
瀏覽器相容性
載入中…