Get to know MDN better
このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。
November 2025以降、この機能は最新のバージョンの端末およびブラウザーで動作します。古い端末やブラウザーでは動作しないことがあります。
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 |
ブラウザー互換性一覧表を表示するには、JavaScript を有効にしてください。
より良いインターネットのための青写真。
このコンテンツの一部は、©1998–2026 個人の mozilla.org 協力者です。コンテンツはクリエイティブ・コモンズ・ライセンスのもとで利用できます。