Baseline Widely available
The Atomics.sub()
static method subtracts 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 until the modified value is written back.
// Create a SharedArrayBuffer with a size in bytes
const buffer = new SharedArrayBuffer(16);
const uint8 = new Uint8Array(buffer);
uint8[0] = 7;
// 7 - 2 = 5
console.log(Atomics.sub(uint8, 0, 2));
// Expected output: 7
console.log(Atomics.load(uint8, 0));
// Expected output: 5
Syntax
Atomics.sub(typedArray, index, value)
Parameters
typedArray
An integer typed array. One of Int8Array
, Uint8Array
, Int16Array
, Uint16Array
, Int32Array
, Uint32Array
, BigInt64Array
, or BigUint64Array
.
index
The position in the typedArray
to subtract a value
from.
value
The number to subtract.
The old value at the given position (typedArray[index]
).
TypeError
Thrown if typedArray
is not one of the allowed integer types.
RangeError
Thrown if index
is out of bounds in the typedArray
.
const sab = new SharedArrayBuffer(1024);
const ta = new Uint8Array(sab);
ta[0] = 48;
Atomics.sub(ta, 0, 12); // returns 48, the old value
Atomics.load(ta, 0); // 36
Specifications Browser compatibility See also
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4