JavaScript AsyncDisposableStack
原创AsyncDisposableStack
AsyncDisposableStack 对象代表一个异步清理函数的堆栈,当堆栈本身被释放时,这些函数会被执行。清理函数按照注册的相反顺序执行,并具有强大的错误处理保证。调用其 move() 方法会将当前注册的清理函数的责任转移到一个新的 AsyncDisposableStack,并阻止注册任何额外的清理函数。
有关使用可释放堆栈的通用信息,请参阅 DisposableStack。
构造函数
AsyncDisposableStack()-
创建一个新的 AsyncDisposableStack 对象。
实例属性
这些属性定义在 AsyncDisposableStack.prototype 上,并由所有 AsyncDisposableStack 实例共享。
AsyncDisposableStack.prototype.constructor-
创建实例对象的构造函数。对于 AsyncDisposableStack 实例,初始值是 AsyncDisposableStack 构造函数。
AsyncDisposableStack.prototype.disposed-
只读。如果 AsyncDisposableStack 已被释放,则返回 true,否则返回 false。
AsyncDisposableStack.prototype[Symbol.toStringTag]-
[Symbol.toStringTag] 属性的初始值是字符串 "AsyncDisposableStack"。此属性用于 Object.prototype.toString()。
实例方法
AsyncDisposableStack.prototype.adopt()-
通过提供自定义清理函数,将一个不实现异步释放协议的值注册到堆栈中。
AsyncDisposableStack.prototype.disposeAsync()-
通过以注册的相反顺序调用所有注册到堆栈的清理函数来释放此堆栈。
AsyncDisposableStack.prototype.defer()-
接受一个在堆栈被释放时调用的回调函数。
AsyncDisposableStack.prototype.move()-
创建一个新的 AsyncDisposableStack 实例,其中包含与此堆栈相同的清理函数,然后将此堆栈标记为已释放,而不调用任何清理函数。
AsyncDisposableStack.prototype.use()-
将一个实现异步释放协议的值注册到堆栈中。
AsyncDisposableStack.prototype[Symbol.asyncDispose]-
disposeAsync() 方法的别名。
规范
| 规范 |
|---|
| ECMAScript Async Explicit Resource Management # sec-asyncdisposablestack-objects |
浏览器兼容性
另请参阅
- core-js 中的 AsyncDisposableStack Polyfill
- JavaScript 资源管理
- Symbol.asyncDispose
- await using
- DisposableStack
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权本站发表,未经许可,不得转载。
开发学习网



