Entre las operaciones atómicas, hay una operación incorporada Atomics.wait() en JavaScript que se usa para verificar si una posición dada en un Int32Array todavía contiene un valor dado y, si es así, está en reposo, esperando un despertar o un tiempo de espera. La operación Atomics.wait() devuelve una string que es «ok», «no igual» o «tiempo de espera agotado». El tipo enterodarray, el índice y el valor se pasan como argumento a la función y el tiempo de espera también es un argumento, pero es opcional.
Sintaxis:
Atomics.wait(typedArray, index, value, timeout)
Parámetros: Este método acepta cuatro parámetros como se mencionó anteriormente y se describe a continuación:
- typedarray: este parámetro especifica una array de tipo entero compartido Int16Array.
- index: este parámetro especifica la posición en la array, typedArray para esperar.
- valor: este parámetro especifica el valor esperado para probar.
- timeout: este parámetro es un parámetro opcional. Es hora de esperar en milisegundos.
Valor de retorno: el método Atomics.wait() devuelve la string que es «ok», «no igual» o «tiempo de espera agotado».
Ejemplos:
Input: arr[0] = 5 Atomics.wait(arr, 0, 0, 1) Output: not-equal Input: arr[0] = 4 Atomics.wait(arr, 1, 0, 1) Output: time-out
Los siguientes programas ilustran el método Atomics.wait() en JavaScript:
Programa 1:
javascript
var buf = new SharedArrayBuffer(1024); var arr = new Int32Array(buf); arr[0] = 5; console.log(Atomics.load(arr, 0)); console.log(Atomics.and(arr, 0, 9)); console.log(Atomics.wait(arr, 0, 0, 1)); console.log(Atomics.load(arr, 0));
Producción:
5 5 not-equal 1
Programa 2:
javascript
var buf = new SharedArrayBuffer(1024); var arr = new Int32Array(buf); arr[0] = 5; console.log(Atomics.load(arr, 0)); console.log(Atomics.and(arr, 0, 9)); console.log(Atomics.wait(arr, 1, 0, 1)); console.log(Atomics.load(arr, 0));
Producción:
5 5 time-out 1
Excepciones:
- Si typedArray no es un Int32Array compartido, la operación Atomics.wait() arroja un TypeError.
- Si el índice utilizado como argumento para la operación Atomics.wait() está fuera del límite en typedArray, entonces la operación Atomics.store() arroja un RangeError.
Navegador compatible:
- Google Chrome
- Borde de Microsoft
- Firefox
Publicación traducida automáticamente
Artículo escrito por SHUBHAMSINGH10 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA