Open In App

JavaScript Atomics waitAsync() Method

Last Updated : 26 May, 2023
Improve
Improve
Like Article
Like
Save
Share
Report

Among the Atomic operations the Atomics.waitAsync() operator is used to make an operation wait asynchronously on memory and returns a promise. It is non-blocking as compared to Atomics.wait() and can be used on the main thread. If the promise is not fulfilled then it will lead to a ‘time-out’ status otherwise the status will always be ‘ok’ after the promise has been fulfilled.

Syntax:

Atomics.waitAsync(typedArray, ind, val, timeOut)

Parameters: This operation accepts four parameters.

  • typedArray: It is an Int32Array or BigInt64Array.
  • ind: It is the position of the element to wait on.
  • val: It is the expected value.
  • timeOut: It is the time for which we have to wait. Infinity is the default value.

Return Value: It returns two values where the first value is boolean and tells if the promise is created. If the first value is true then the second value is a Promise which is fulfilled and never rejected 

Example 1: This example shows the use of the waitAsync() method.

Javascript




let example = new SharedArrayBuffer(1024);
let arr = new Int32Array(example);
console.log(Atomics.waitAsync(arr, 0, 0, 1000));


Output:

{ async: true, value: Promise { <pending> } }

Example 2: This example shows the promise fulfilled state.

Javascript




let example = new SharedArrayBuffer(1024);
let arr = new Int32Array(example);
let res = Atomics.waitAsync(arr, 0, 0, 1000)
 
console.log(res);
 
Atomics.notify(arr, 0)
 
setTimeout(() => {
    console.log(res);   
}, 1000);


Output: The notify() method wakes the array and the promise is fulfilled.

{ async: true, value: Promise { <pending> } }
{ async: true, value: Promise { 'ok' } }

Supported Browsers:

  • Chrome
  • Edge
  • Opera
  • Safari

We have a complete list of Javascript Atomic methods, to check those please go through this JavaScript Atomics Reference article.


Like Article
Suggest improvement
Previous
Next
Share your thoughts in the comments

Similar Reads