AsyncDisposableStack.prototype.defer()

Limited availability

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

Phương thức defer() của các instance AsyncDisposableStack nhận một hàm callback để gọi và chờ (await) khi ngăn xếp bị hủy.

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

Cú pháp

js
defer(onDispose)

Tham số

onDispose

Một hàm sẽ được gọi khi ngăn xếp bị hủy. Hàm không nhận đối số nào và có thể trả về một promise sẽ được chờ (await).

Giá trị trả về

Không có (undefined).

Ngoại lệ

TypeError

Ném ra nếu onDispose không phải là một hàm.

ReferenceError

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

Ví dụ

Sử dụng defer()

Một trường hợp sử dụng của defer() là thực hiện điều gì đó không liên quan đến việc giải phóng tài nguyên khi thoát phạm vi, chẳng hạn như ghi một thông báo log.

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
}

Đặc tả

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

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

Xem thêm