Get to know MDN better
此页面由社区从英文翻译而来。了解更多并加入 MDN Web Docs 社区。
Atomics.waitAsync() 静态方法异步等待共享内存的特定位置并返回一个 Promise。
与 Atomics.wait() 不同,waitAsync 是非阻塞的且可用于主线程。
备注:此操作仅适用于基于 SharedArrayBuffer 的 Int32Array 或 BigInt64Array 视图。
基于 SharedArrayBuffer 的 Int32Array 或 BigInt64Array。
indextypedArray 中要等待的位置。
value要测试的期望值。
timeout 可选等待时间,以毫秒为单位。NaN(以及会被转换为 NaN 的值,例如 undefined)会被转换为 Infinity。负值会被转换为 0。
一个 Object,包含以下属性:
async一个布尔值,指示 value 属性是否为 Promise。
value如果 async 是 false,它将是一个内容为 "not-equal" 或 "timed-out" 的字符串(仅当 timeout 参数为 0 时)。如果 async 是 true,它将会是一个 Promise,其兑现值为一个内容为 "ok" 或 "timed-out" 的字符串。这个 promise 永远不会被拒绝。
如果 typedArray 不是一个基于 SharedArrayBuffer 的 Int32Array 或 BigInt64Array,则抛出该异常。
RangeError如果 index 超出 typedArray 的范围,则抛出该异常。
给定一个共享的 Int32Array。
令一个读取线程休眠并在位置 0 处等待,预期该位置的值为 0。result.value 将是一个 promise。
在该读取线程或另一个线程中,对内存位置 0 调用以令该 promise 解决为 "ok"。
如果它没有解决为 "ok",则共享内存该位置的值不符合预期(value 将是 "not-equal" 而不是一个 promise)或已经超时(该 promise 将解决为 "time-out")。
| ECMAScript® 2027 Language Specification # sec-atomics.waitasync |
启用 JavaScript 以查看此浏览器兼容性表。