This is an experimental technology
Because this technology's specification has not stabilized, check the compatibility table for usage in various browsers. Also note that the syntax and behavior of an experimental technology is subject to change in future versions of browsers as the specification changes.
.wait() method verifies that a given position in an
Int32Array still contains a given value and sleeps awaiting or times out. It returns a string which is either
Note: This operation only works with a shared
Int32Array and is not allowed on the main thread.
Atomics.wait(typedArray, index, value[, timeout])
- A shared
- The position in the
typedArrayto wait on.
- The expected value to test .
- Time to wait in milliseconds.
Infinity, if no time is provided.
String which is either "
not-equal", or "
- Throws a
typedArrayis not a shared
- Throws a
indexis out of bounds in the
Given a shared
var sab = new SharedArrayBuffer(1024); var int32 = new Int32Array(sab);
A reading thread is sleeping and waiting on location 0 which is expected to be 0. As long as that is true, it will not go on. However, once the writing thread has stored a new value, it will be woken up by the writing thread and return the new value (123).
Atomics.wait(int32, 0, 0); console.log(int32); // 123
A writing thread stores a new value and wakes up the waiting thread once it has written:
console.log(int32); // 0; Atomics.store(int32, 0, 123); Atomics.wake(int32, 0, 1);
|ECMAScript Latest Draft (ECMA-262)
The definition of 'Atomics.wait' in that specification.
|Draft||Initial definition in ES2017.|
|Feature||Chrome||Edge||Firefox (Gecko)||Internet Explorer||Opera||Safari|
|Basic support||No support ||No support||55 (55)  ||No support||No support||No support|
|Feature||Android||Chrome for Android||Firefox Mobile (Gecko)||IE Mobile||Opera Mobile||Safari Mobile|
|Basic support||No support||No support||55.0 (55) ||No support||No support||No support|
 In Firefox version 46 until version 54, this feature is disabled by a preference setting. In about:config, set
 The implementation is under development and needs these runtime flags:
 In versions 46 and 47, this method was named
Atomics.futexWait() and the properties
Atomics.NOTEQUAL were returned instead of the strings.