AsyncDisposableStack.prototype.use()

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

Phương thức use() của các instance AsyncDisposableStack đăng ký một giá trị triển khai giao thức async disposable vào ngăn xếp.

Xem DisposableStack.prototype.use() để biết thông tin chung về phương thức use().

Cú pháp

js
use(value)

Tham số

value

Giá trị cần đăng ký vào ngăn xếp. Phải chứa phương thức [Symbol.asyncDispose]() hoặc [Symbol.dispose](), hoặc là null hoặc undefined.

Giá trị trả về

Cùng value đã được truyền vào.

Ngoại lệ

TypeError

Ném ra nếu value không phải là null hoặc undefined, và không chứa phương thức [Symbol.asyncDispose]() hoặc [Symbol.dispose]().

ReferenceError

Ném ra nếu ngăn xếp đã bị hủy.

Ví dụ

Sử dụng use()

Hàm này đọc một file (là một Node.js FileHandle) và trả về nội dung của nó. File handle được tự động đóng khi hàm hoàn thành, vì class FileHandle triển khai phương thức [Symbol.asyncDispose]() để đóng file một cách bất đồng bộ.

js
async function readFileContents(path) {
  await using disposer = new AsyncDisposableStack();
  const handle = disposer.use(await fs.open(path));
  const data = await handle.read();
  return data;
  // The disposer is disposed here, which causes handle to be closed too
}

Đặc tả

Specification
ECMAScript Async Explicit Resource Management
# sec-asyncdisposablestack.prototype.use

Tương thích trình duyệt

Xem thêm