--- title: Atomics.add() slug: Web/JavaScript/Reference/Global_Objects/Atomics/add translation_of: Web/JavaScript/Reference/Global_Objects/Atomics/add ---
{{JSRef}}

Статический метод Atomics.add() добавляет значение к текущему по указанной позиции в массиве и возвращает предыдущее значение в этой позиции. Эта атомарная опреация гарантирует, что никакой другой записи не произойдет, пока измененное значение не будет записано обратно.

Синтаксис

Atomics.add(typedArray, index, value)

Параметры

typedArray
Разделенный массив целых чисел. {{jsxref("Int8Array")}}, {{jsxref("Uint8Array")}}, {{jsxref("Int16Array")}}, {{jsxref("Uint16Array")}}, {{jsxref("Int32Array")}} или {{jsxref("Uint32Array")}}.
index
Позиция в typedArray для добавления value.
value
Число для добавления.

Возвращаемое значение

Предыдущее значение в указанной позиции (typedArray[index]).

Исключения

Примеры

var sab = new SharedArrayBuffer(1024);
var ta = new Uint8Array(sab);

Atomics.add(ta, 0, 12); // возвращает 0, предыдущее значение
Atomics.load(ta, 0); // 12

Спецификации

Specification Status Comment
{{SpecName('ESDraft', '#sec-atomics.add', 'Atomics.add')}} {{Spec2('ESDraft')}} Initial definition in ES2017.

Поддержка браузерами

{{CompatibilityTable}}

Feature Chrome Edge Firefox (Gecko) Internet Explorer Opera Safari
Basic support {{CompatNo}} [2] {{CompatNo}} {{CompatGeckoDesktop("55")}} [1] {{CompatNo}} {{CompatNo}} {{CompatNo}}
Feature Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Basic support {{CompatNo}} {{CompatNo}} {{CompatGeckoMobile("55")}} [1] {{CompatNo}} {{CompatNo}} {{CompatNo}}

[1] In Firefox version 46 until version 54, this feature is disabled by a preference setting. In about:config, set javascript.options.shared_memory to true

[2] The implementation is under development and needs these runtime flags: --js-flags=--harmony-sharedarraybuffer --enable-blink-feature=SharedArrayBuffer

Смотри также