Atomics.add()

简介: Atomics.add()

MDN文档

Atomics.add() 静态方法会将给定的值加到数组里的某个特定位置上,并返回该位置的旧值。此原子操作保证在写上修改的值之前不会发生其他写操作。


语法

Atomics.add(typedArray, index, value)


参数:

  • typedArray
    一个共享的整型 typed array 。例如 Int8ArrayUint8ArrayInt16ArrayUint16ArrayInt32Array ,或者 Uint32Array
  • index
    typedArray 中的位置,该位置数值会被加总并更新。
  • value
    增加的数字。


返回值:

给定位置的旧值typedArray[index] )。


错误:

  • 假如 typedArray 不是允许的整型之一,则抛出 TypeError
  • 假如 typedArray 不是一个shared typed array类型,则抛出 TypeError
  • 如果 index 超出了 typedArray 的边界,则抛出 RangeError


示例

const sab = new SharedArrayBuffer(1024);
const ta = new Uint8Array(sab);
const old = Atomics.add(ta, 0, 12);
console.log(old) // 0
const now = Atomics.load(ta, 0);
console.log(now) // 12
目录
相关文章
|
1月前
|
JavaScript 前端开发
实现 (5).add(3).minus(2) 功能
通过JavaScript实现类似`(5).add(3).minus(2)`的功能,定义了`NumberWrapper`类,包含`add`和`minus`方法,用于数值的增减操作并支持链式调用。示例代码展示了从5开始,先加3再减2的过程。
|
6月前
Caused by: org.apache.ibatis.type.TypeException: Could not resolve type alias ‘order‘. Caus
Caused by: org.apache.ibatis.type.TypeException: Could not resolve type alias ‘order‘. Caus
109 0
org.activiti.engine.ActivitiException: Couldn't deserialize object in variable 'application'
org.activiti.engine.ActivitiException: Couldn't deserialize object in variable 'application'
|
Java 数据库连接 mybatis
@TableId(type = IdType.ASSIGN_ID)
@TableId(type = IdType.ASSIGN_ID)
179 1
|
Java Apache
Cause: the class org.apache.tools.ant.taskdefs.optional.ANTLR was not found.
Cause: the class org.apache.tools.ant.taskdefs.optional.ANTLR was not found.
105 0
|
索引
Atomics.and()
Atomics.and()
57 0
Cause: buildOutput.apkData must not be null
Cause: buildOutput.apkData must not be null
Cause: buildOutput.apkData must not be null
|
开发工具 Android开发
解决Error:Could not determine the class-path for interface com.android.builder.model.AndroidProject.
解决Error:Could not determine the class-path for interface com.android.builder.model.AndroidProject.
214 0
解决Error:Could not determine the class-path for interface com.android.builder.model.AndroidProject.