AsyncDisposableStack.prototype.defer()
Khả dụng hạn chế
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
onDisposekhô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ả
| Thông số kỹ thuật |
|---|
| ECMAScript Async Explicit Resource Management> # sec-asyncdisposablestack.prototype.defer> |