Atomics
.add()
静态方法会将给定的值加到数组里的某个特定位置上,并返回该位置的旧值。此原子操作保证在写上修改的值之前不会发生其他写操作。
The source for this interactive example is stored in a GitHub repository. If you'd like to contribute to the interactive examples project, please clone https://github.com/mdn/interactive-examples and send us a pull request.
语法
Atomics.add(typedArray, index, value)
参数
typedArray
- 一个共享的整型 typed array。例如
Int8Array
,Uint8Array
,Int16Array
,Uint16Array
,Int32Array
,或者Uint32Array
。 index
typedArray
中的位置,该位置数值会被加总并更新。value
- 增加的数字。
返回值
给定位置的旧值(typedArray[index])
。
错误
- 假如
typedArray
不是允许的整型之一,则抛出TypeError
。 假如 typedArray
不是一个shared typed array类型,则抛出TypeError
。- 如果
index
超出了typedArray 的边界,则抛出
RangeError
。
示例
var sab = new SharedArrayBuffer(1024);
var ta = new Uint8Array(sab);
Atomics.add(ta, 0, 12); // returns 0, the old value
Atomics.load(ta, 0); // 12
规范
Specification | Status | Comment |
---|---|---|
ECMAScript (ECMA-262) Atomics.add |
Living Standard | Initial definition in ES2017. |
浏览器支持
BCD tables only load in the browser
The compatibility table on this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.