Atomics.add()
åºçº¿
广æ³å¯ç¨
èª 2021å¹´12æ èµ·ï¼æ¤ç¹æ§å·²å¨ä¸»æµæµè§å¨ä¸å¾å°æ¯æï¼å¯å¨å¤§å¤æ°è®¾å¤åæµè§å¨çæ¬ä¸æ£å¸¸ä½¿ç¨ã
Atomics.add() éææ¹æ³ä¼å°ç»å®çå¼å å°æ°ç»éçæå®ä½ç½®ä¸ï¼å¹¶è¿å该ä½ç½®çæ§å¼ãæ¤ååæä½ä¿è¯å¨ä¿®æ¹åçå¼ååä¹åä¸ä¼åçå
¶ä»åæä½ã
å°è¯ä¸ä¸
// Create a SharedArrayBuffer with a size in bytes
const buffer = new SharedArrayBuffer(16);
const uint8 = new Uint8Array(buffer);
uint8[0] = 7;
// 7 + 2 = 9
console.log(Atomics.add(uint8, 0, 2));
// Expected output: 7
console.log(Atomics.load(uint8, 0));
// Expected output: 9
è¯æ³
js
Atomics.add(typedArray, index, value)
åæ°
typedArray-
ä¸ä¸ªæ´æ°ç±»åæ°ç»ã
Int8ArrayãUint8ArrayãInt16ArrayãUint16ArrayãInt32ArrayãUint32ArrayãBigInt64ArrayæBigUint64Arrayä¹ä¸ã index-
typedArrayä¸çè¦å ä¸valueçä½ç½®ã value-
è¦å¢å çæ°åã
è¿åå¼
ç»å®ä½ç½®çæ§å¼ï¼typedArray[index]ï¼ã
å¼å¸¸
TypeError-
妿
typedArray䏿¯å è®¸çæ´æ°ç±»åæ°ç»ä¹ä¸ï¼åæåºè¯¥å¼å¸¸ã RangeError-
妿
indexè¶ åºtypedArrayçèå´ï¼åæåºè¯¥å¼å¸¸ã
示ä¾
>ä½¿ç¨ add()
js
const sab = new SharedArrayBuffer(1024);
const ta = new Uint8Array(sab);
Atomics.add(ta, 0, 12); // è¿å 0ï¼å³æ§çå¼
Atomics.load(ta, 0); // 12
è§è
| è§è |
|---|
| ECMAScript® 2027 Language Specification> # sec-atomics.add> |