Atomics.wait

Atomics.wait

静态Atomics.wait()方法验证 Int32Array 中的给定位置是否仍包含给定值, 如果休眠, 则等待唤醒或超时。它返回一个字符串, 它可以是 "ok"、"不等于" 或 "超时"。

注意: 此操作仅适用于共享 Int32Array, 并且不允许在主线程上使用。

语法

Atomics.wait(typedArray, index, value[, timeout])

参数

typedArray 共享 Int32Array

返回值

一个可以是 "ok"、"不等于" 或 "超时" 的字符串。

异常

  • 如果 typedArray 不是共享的 Int32Array, 则抛出 TypeError。

  • 如果索引在 typedArray 中超出界限, 则抛出 RangeError。

示例

给定一个共享的 Int32Array:

var sab = new SharedArrayBuffer(1024 var int32 = new Int32Array(sab

读取线程正在休眠, 等待位置 0, 预计将为0。只要这是真的, 它就不会继续下去。但是, 一旦写入线程存储了一个新值, 它将被写入线程唤醒并返回新值 (123)。

Atomics.wait(int32, 0, 0 console.log(int32[0] // 123

写入线程存储一个新值, 并在它写入后唤醒等待线程:

console.log(int32[0] // 0; Atomics.store(int32, 0, 123 Atomics.wake(int32, 0, 1

规范

SpecificationStatusComment
ECMAScript Latest Draft (ECMA-262)The definition of 'Atomics.wait' in that specification.Living StandardInitial definition in ES2017.

浏览器兼容性

FeatureChromeEdgeFirefox (Gecko)Internet ExplorerOperaSafari
Basic supportNo support 2No support55 (55) 1No supportNo supportNo support

FeatureAndroidChrome for AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic supportNo supportNo support55.0 (55) 1No supportNo supportNo support