Atomics - méthode compareExchange ()
compareExchangeLa méthode compare et échange une valeur de remplacement si la valeur donnée n'est pas la même que l'ancienne valeur. Il renvoie l'ancienne valeur à cette position. Cette opération atomique garantit qu'aucune autre écriture ne peut avoir lieu tant que la valeur modifiée n'est pas réécrite.
Syntaxe
Atomics.compareExchange(typedArray, index, expectedValue, replacementValue)
Paramètres
typedArray est le tableau typé entier.
index est la position dans le tableau de types.
expectedValue pour vérifier l'égalité.
replacementValue échanger.
Revenir
Renvoie l'ancienne valeur à une position donnée.
Des exceptions
TypeError dans le cas où le tableau passé n'est pas un tableau de type entier.
RangeError si l'index passé est hors limite dans le tableau typé.
Exemple
Voici le code pour implémenter JavaScript Atomics -
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Atomics Example</title>
<style>
.result {
font-size: 20px;
border: 1px solid black;
}
</style>
</head>
<body onLoad="operate();">
<h1>JavaScript Atomics Properties</h1>
<div class="result"></div>
<p>Atomics.compareExchange(arr, 0, 6, 2)</p>
<p>Atomics.load(arr, 0)</p>
<script>
function operate(){
let container = document.querySelector(".result");
// create a SharedArrayBuffer
var buffer = new SharedArrayBuffer(25);
var arr = new Uint8Array(buffer);
// Initialise element at zeroth position of array with 6
arr[0] = 6;
container.innerHTML = Atomics.compareExchange(arr, 0, 6, 2) + '<br/>' + Atomics.load(arr, 0);
}
</script>
</body>
</html>
Production
Vérifiez le résultat.