Newly available 主要ブラウザの最新版で対応済み。古いブラウザが対象外なら使用可能。

対応ブラウザ

機能 デスクトップ モバイル
Chrome
Edge
Firefox
Safari
Chrome Android
Safari iOS
90
90
145
16.4
90
16.4
1+対応 (バージョン) 未対応 注釈あり サブ機能の解説は MDN Web Docs (CC BY-SA 2.5)
注釈 3件
制限事項
  • このブラウザでは部分的にしか実装されていません
削除済み
  • このバージョンで機能が削除されました (90)
実装メモ
  • Atomics.waitAsync()` メソッドがタイムアウトしない。バグ 40742782 を参照。
注釈 3件
制限事項
  • このブラウザでは部分的にしか実装されていません
削除済み
  • このバージョンで機能が削除されました (90)
実装メモ
  • Atomics.waitAsync()` メソッドがタイムアウトしない。バグ 40742782 を参照。
注釈 3件
制限事項
  • このブラウザでは部分的にしか実装されていません
削除済み
  • このバージョンで機能が削除されました (90)
実装メモ
  • Atomics.waitAsync()` メソッドがタイムアウトしない。バグ 40742782 を参照。

基本構文

JAVASCRIPT
const sab = new SharedArrayBuffer(4);
const int32 = new Int32Array(sab);

const { async: waitPromise } = Atomics.waitAsync(int32, 0, 0);
waitPromise.then(() => console.log('The value has been changed'));

ライブデモ

Check Atomics.waitAsync support

Inspect the availability of the async waiting API.

JavaScript
出力
「実行」ボタンを押してください

Start an async wait

Create the shared memory setup and inspect the returned wait token.

JavaScript
出力
「実行」ボタンを押してください

Resolve a waitAsync promise

Wake the waiting promise with Atomics.notify after updating the value.

JavaScript
出力
「実行」ボタンを押してください

実務での使いどころ

  • Atomics.waitAsync() の活用

    Atomics.waitAsync() 静的メソッドは、共有メモリー位置が指定された値を含むことを確認し、メモリー位置が指定された値と一致しない場合は文字列 "not-equal" を含む value プロパティを持つオブジェクトを即座に返し、タイムアウトが 0 に設定されている場合は "timed-out" を返します。

注意点

  • 古いブラウザ(IE等)では対応していない。対象ブラウザを確認すること。

アクセシビリティ

  • JavaScript による動的更新時は、aria-live リージョンで変更をスクリーンリーダーに通知する。