Get to know MDN better
このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。
Since November 2025, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.
Atomics.waitAsync() 静的メソッドは、共有メモリー位置が指定された値を含むことを確認し、メモリー位置が指定された値と一致しない場合は文字列 "not-equal" を含む value プロパティを持つオブジェクトを即座に返し、タイムアウトが 0 に設定されている場合は "timed-out" を返します。それ以外の場合、このメソッドは、value プロパティが Promise であるオブジェクトを返し、これは Atomics.notify() が呼び出されたときに "ok"、またはタイムアウトが切れたときに "timed-out" で履行されます。
Atomics.waitAsync() および Atomics.notify() を一緒に使用すると、共有メモリー内の値に基づいてスレッドの同期を有効にすることができます。スレッドは、同期値が変更された場合、すぐに処理を続行することも、同期ポイントに到達したときに別のスレッドからの通知を待つこともできます。
このメソッドは、 SharedArrayBuffer のビューである Int32Array または BigInt64Array でのみ動作します。これはノンブロッキングであり、Atomics.wait() とは異なり、メインスレッドで使用することができます。スレッド全体をブロックしないため、プロミスが決定する前に共有メモリーにアクセスしないように注意する必要があります。
SharedArrayBuffer のビューである Int32Array または BigInt64Array。
index待機する typedArray 内の位置。
value検査で期待される値。
timeout 省略可待機時間をミリ秒単位で指定します。 NaN (および NaN に変換される値、例えば undefined)は Infinity となります。負の値は 0 となります。
以下のプロパティを持つオブジェクト (Object) です。
asyncvalue プロパティが Promise であるかどうかを示す論理値です。
valueasync が false の場合、文字列 "not-equal" または "timed-out" (timeout 引数が 0 の場合のみ)になります。 async が true の場合、 "ok" または "timed-out" の文字列値で履行されるプロミス (Promise) になります。このプロミスは決して拒否されません。
typedArray が、 SharedArrayBuffer のビューである Int32Array または BigInt64Array でない場合に発生します。
RangeErrorindex が typedArray の範囲を超えている場合に発生します。
共有された Int32Array があったとします。
読み取りスレッドは、0 であると思われる位置 0 で休眠して待機しています。 result.value はプロミスになります。
読み込みスレッドまたは別のスレッドで、メモリー位置 0 が呼び出され、プロミスは "ok" で解決できます。
"ok" に解決されない場合、共有メモリーの場所の値が期待した値ではなかったか(value はプロミスではなく "not-equal" になります)、タイムアウトに達したということです(プロミスは "time-out" に解決されます)。
| ECMAScript® 2027 Language Specification # sec-atomics.waitasync |
Enable JavaScript to view this browser compatibility table.
This page was last modified on 2025年7月25日 by MDN contributors.
Your blueprint for a better internet.
Visit Mozilla Corporation’s not-for-profit parent, the Mozilla Foundation.
Portions of this content are ©1998–2026 by individual mozilla.org contributors. Content available under a Creative Commons license.