Atomics - compareExchange () -Methode

compareExchangeDie Methode vergleicht einen Austauschwert und tauscht ihn aus, wenn der angegebene Wert nicht mit dem alten Wert übereinstimmt. Es gibt den alten Wert an dieser Position zurück. Diese atomare Operation stellt sicher, dass kein weiterer Schreibvorgang ausgeführt werden kann, bis der geänderte Wert zurückgeschrieben wird.

Syntax

Atomics.compareExchange(typedArray, index, expectedValue, replacementValue)

Parameter

  • typedArray ist das ganzzahlige Array.

  • index ist die Position in typedarray.

  • expectedValue auf Gleichheit prüfen.

  • replacementValue wechseln.

Rückkehr

Gibt den alten Wert an der angegebenen Position zurück.

Ausnahmen

  • TypeError Für den Fall, dass das übergebene Array kein ganzzahliges Array ist.

  • RangeError Wenn der übergebene Index in einem typisierten Array nicht gebunden ist.

Beispiel

Im Folgenden finden Sie den Code zum Implementieren von 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>

Ausgabe

Überprüfen Sie das Ergebnis.