.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.