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