在Atomic操作中,有一个内置操作Atomics.JavaScript中的wait()用于验证Int32Array中的给定位置是否仍包含给定值,如果处于睡眠状态,则等待唤醒或超时。 Atomics.wait()操作返回的字符串是“ok”,“not-equal”或“timed-out”。整数typedarray,index和value作为参数传递给函数,并且timeout也是参数,但它是可选的。
用法:
Atomics.wait(typedArray, index, value, timeout)
参数:此方法接受上述和以下所述的四个参数:
- typedarray:此参数指定共享整数类型的数组Int16Array。
- index:此参数指定数组中要等待的位置typedArray。
- value:此参数指定要测试的期望值。
- timeout:此参数是可选参数。现在该等待毫秒了。
返回值:Atomics.wait()方法返回的字符串为“ok”,“not-equal”或“timed-out”。
例子:
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
以下程序说明了JavaScript中的Atomics.wait()方法:
程序1:
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));
输出:
5 5 not-equal 1
程序2:
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));
输出:
5 5 time-out 1
异常:
- 如果typedArray不是共享的Int32Array,则Atomics.wait()操作将引发TypeError。
- 如果用作Atomics.wait()操作的参数的索引超出typedArray的范围,则Atomics.store()操作将引发RangeError。
相关用法
- Javascript Int8Array from()用法及代码示例
- Javascript hasOwnProperty()用法及代码示例
- Javascript Reflect.set()用法及代码示例
- Javascript Int32Array.from()用法及代码示例
- Javascript Reflect.get()用法及代码示例
- Javascript compile()用法及代码示例
- Javascript Int16Array from()用法及代码示例
- Javascript Uint32Array from()用法及代码示例
- Javascript Uint8ClampedArray.from()用法及代码示例
- Javascript Promise.all()用法及代码示例
- Javascript padStart()用法及代码示例
- Javascript Array.from()用法及代码示例
- Javascript Sort()用法及代码示例
- Javascript Float64Array.from()用法及代码示例
- Javascript Uint8Array.from()用法及代码示例
注:本文由纯净天空筛选整理自SHUBHAMSINGH10大神的英文原创作品 JavaScript | Atomics.wait() Method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。