--- title: Atomics.compareExchange() slug: Web/JavaScript/Reference/Global_Objects/Atomics/compareExchange tags: - Atomics - JavaScript - Method - Shared Memory translation_of: Web/JavaScript/Reference/Global_Objects/Atomics/compareExchange ---
Die statische Atomics
.compareExchange()
Methode ersetzt einen Wert an einer gegebenen Position im einem Array mit einem gegebene Wert aus, wenn ein gegebenen Wert gleich dem alten Wert ist. Es wird der alte Wert an der Position zurückgegeben, egal ob der abzugleichende Wert gleich oder nicht ist. Die atomare Operation garantiert, dass kein anderer Schreibprozess während der Operation durchgeführt wird.
Atomics.compareExchange(typedArray, index, expectedValue, replacementValue)
typedArray
index
typedArray
, an den ein Wert ersetzt wird.expectedValue
Der alte Wert an der gegebenen Position (typedArray[index]
).
typedArray
nicht von einem erlaubten Integer Typ ist.typedArray
kein geteilter Arraytyp ist.index
nicht in den Grenzen von typedArray
ist.var sab = new SharedArrayBuffer(1024); var ta = new Uint8Array(sab); ta[0] = 7; Atomics.compareExchange(ta, 0, 7, 12); // returns 7, the old value Atomics.load(ta, 0); // 12
Spezifikation | Status | Kommentar |
---|---|---|
{{SpecName('ESDraft', '#sec-atomics.compareexchange', 'Atomics.compareExchange')}} | {{Spec2('ESDraft')}} | Initiale Definition in ES2017. |
{{Compat("javascript.builtins.Atomics.compareExchange")}}