AsyncDisposableStack.prototype.defer()
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
AsyncDisposableStack インスタンスの defer() メソッドは、スタックが破棄されるときに呼び出され、その完了が待機されるコールバック関数を受け取ります。
defer() メソッドの一般的な情報については、 DisposableStack.prototype.defer() を参照してください。
構文
js
defer(onDispose)
引数
onDispose-
スタックが破棄されるときに呼び出される関数です。この関数は引数を受け取らず、プロミスを返すこともでき、その場合は待機されます。
返値
なし (undefined)。
例外
TypeError-
onDisposeが関数でない場合にスローされます。 ReferenceError-
スタックがすでに破棄されている場合にスローされます。
例
>defer() の使用
defer() の用途の一つは、スコープを抜けるときにリソースの解放とは関係のない処理(例えばメッセージのログ出力)を行うことです。
js
async function doSomething() {
await using disposer = new AsyncDisposableStack();
disposer.defer(async () => {
await fs.writeFile("log.txt", "All resources freed successfully");
});
// 他のコード (さらにデータを確保して解放する処理)
}
仕様書
| Specification |
|---|
| ECMAScript Async Explicit Resource Management> # sec-asyncdisposablestack.prototype.defer> |