AsyncDisposableStack

可用性有限

此特性不是基线特性,因为它在一些最广泛使用的浏览器中不起作用。

AsyncDisposableStack 对象表示一个 async disposers 堆栈,当堆栈本身被释放时,将按注册顺序的逆序执行这些 disposers。disposer 函数的执行具有严格的错误处理保证。调用其 move() 方法会将当前已注册 disposers 的调用责任转移到一个新的 AsyncDisposableStack 对象,并阻止注册任何其他 disposers。

有关使用 disposable stacks 的一般信息,请参阅 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()

通过提供自定义的 disposer 函数,将未实现 async disposable 协议的值注册到堆栈中。

AsyncDisposableStack.prototype.disposeAsync()

通过按注册顺序的逆序调用所有已注册的 disposers 来释放此堆栈。

AsyncDisposableStack.prototype.defer()

接受一个回调函数,该函数将在堆栈被释放时调用。

AsyncDisposableStack.prototype.move()

创建一个新的 AsyncDisposableStack 实例,该实例包含与此堆栈相同的 disposers,然后将此堆栈标记为已释放,而不调用任何 disposers。

AsyncDisposableStack.prototype.use()

将实现 async disposable 协议的值注册到堆栈中。

AsyncDisposableStack.prototype[Symbol.asyncDispose]

disposeAsync() 方法的别名。

规范

规范
ECMAScript 异步显式资源管理
# sec-asyncdisposablestack-objects

浏览器兼容性

另见