Atomics.exchange()

Atomics.exchange() 静态方法交换数组中给定位置处的给定值并返回该位置处的旧值。此原子操作保证在读取旧值和写入新值之间不会发生其他写入。

¥The Atomics.exchange() static method exchanges a given value at a given position in the array and returns the old value at that position. This atomic operation guarantees that no other write happens between the read of the old value and the write of the new value.

Try it

语法

¥Syntax

js
Atomics.exchange(typedArray, index, value)

参数

¥Parameters

typedArray

整数类型数组。Int8ArrayUint8ArrayInt16ArrayUint16ArrayInt32ArrayUint32ArrayBigInt64ArrayBigUint64Array 之一。

index

typedArray 的位置换成 value

value

要交换的号码。

返回值

¥Return value

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

¥The old value at the given position (typedArray[index]).

例外情况

¥Exceptions

TypeError

如果 typedArray 不是允许的整数类型之一,则抛出该错误。

RangeError

如果 indextypedArray 中出界,则抛出该球。

示例

¥Examples

使用交换()

¥Using exchange()

js
const sab = new SharedArrayBuffer(1024);
const ta = new Uint8Array(sab);

Atomics.exchange(ta, 0, 12); // returns 0, the old value
Atomics.load(ta, 0); // 12

规范

Specification
ECMAScript Language Specification
# sec-atomics.exchange

¥Specifications

浏览器兼容性

BCD tables only load in the browser

¥Browser compatibility

也可以看看