當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。