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 |
浏览器兼容性
加载中…