Atomics.exchange()
Baseline
Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since December 2021.
Phương thức tĩnh Atomics.exchange() trao đổi một giá trị đã cho tại một vị trí đã cho trong mảng, và trả về giá trị cũ tại vị trí đó. Thao tác nguyên tử này đảm bảo rằng không có lần ghi nào khác xảy ra giữa việc đọc giá trị cũ và ghi giá trị mới.
Cú pháp
Atomics.exchange(typedArray, index, value)
Tham số
typedArray-
Một mảng được gõ kiểu số nguyên. Một trong
Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,BigInt64Array, hoặcBigUint64Array. index-
Vị trí trong
typedArrayđể trao đổivalue. value-
Số cần trao đổi.
Giá trị trả về
Giá trị cũ tại vị trí đã cho (typedArray[index]).
Ngoại lệ
TypeError-
Được ném ra nếu
typedArraykhông phải là một trong các kiểu số nguyên được cho phép. RangeError-
Được ném ra nếu
indexnằm ngoài giới hạn trongtypedArray.
Ví dụ
Lưu ý rằng các ví dụ này không thể chạy trực tiếp từ console hoặc một trang web tùy ý, vì SharedArrayBuffer không được định nghĩa trừ khi các yêu cầu bảo mật của nó được đáp ứng.
Sử dụng Atomics.exchange()
// Create a SharedArrayBuffer with a size in bytes
const sab = new SharedArrayBuffer(1024);
// Create a view and set the value of the 0 index
const ta = new Uint8Array(sab);
ta[0] = 7;
console.log(Atomics.exchange(ta, 0, 12)); // 7, the old value
console.log(Atomics.load(ta, 0)); // 12, the new/current value
Đặc tả kỹ thuật
| Thông số kỹ thuật |
|---|
| ECMAScript® 2027 Language Specification> # sec-atomics.exchange> |