当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Javascript Atomics.wait()用法及代码示例


在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。



相关用法


注:本文由纯净天空筛选整理自SHUBHAMSINGH10大神的英文原创作品 JavaScript | Atomics.wait() Method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。