Atomics - metoda compareExchange ()
compareExchangemetoda porównuje i zamienia wartość zastępczą, jeśli podana wartość nie jest taka sama jak stara wartość. Zwraca starą wartość na tej pozycji. Ta niepodzielna operacja zapewnia, że żaden inny zapis nie zostanie wykonany, dopóki zmodyfikowana wartość nie zostanie z powrotem zapisana.
Składnia
Atomics.compareExchange(typedArray, index, expectedValue, replacementValue)
Parametry
typedArray jest tablicą wpisaną jako liczbę całkowitą.
index to pozycja w typedarray.
expectedValue sprawdzić równość.
replacementValue do wymiany.
Powrót
Zwraca starą wartość na podanej pozycji.
Wyjątki
TypeError w przypadku, gdy przekazana tablica nie jest tablicą o typie liczby całkowitej.
RangeError jeśli przekazany indeks jest poza ograniczeniem we wpisanej tablicy.
Przykład
Poniżej znajduje się kod do implementacji 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>
Wynik
Sprawdź wynik.