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