[ Web Proxy ]
URL:
Viewing: https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Global_Objects/Atomics/waitAsync [Back]  [Original]

Atomics : mthode statique waitAsync() - JavaScript | MDN

Cette page a t traduite partir de l'anglais par la communaut. Vous pouvez contribuer en rejoignant la communaut francophone sur MDN Web Docs.

View in English Always switch to English

Atomics : mthode statique waitAsync()

Baseline 2025
Nouvellement disponible

Depuis novembre 2025, cette fonctionnalit fonctionne sur les appareils et les versions de navigateur les plus rcents. Elle peut ne pas fonctionner sur les appareils ou navigateurs plus anciens.

La mthode statique Atomics.waitAsync() vrifie qu'un emplacement de mmoire partage contient une valeur donne, retournant immdiatement un objet dont la proprit value contient la chane de caractres "not-equal" si l'emplacement de mmoire ne correspond pas la valeur donne, ou "timed-out" si le dlai d'attente a t fix zro. Sinon, la mthode renvoie un objet dont la proprit value est une Promise qui s'excute avec "ok" lorsque Atomics.notify() est appele, ou "timed-out" si le dlai d'attente a expir.

Atomics.waitAsync() et Atomics.notify() sont utiliss ensemble pour permettre la synchronisation des processus base sur une valeur en mmoire partage. Un processus peut continuer immdiatement si la valeur de synchronisation a chang, ou attendre la notification d'un autre processus lorsqu'il atteint le point de synchronisation.

Cette mthode ne fonctionne qu'avec un Int32Array ou un BigInt64Array qui observe un SharedArrayBuffer. Elle est non bloquante et, contrairement Atomics.wait(), peut tre utilise dans le processus principal. Comme elle ne bloque pas le processus entier, il faut veiller ne pas accder la mmoire partage avant que la promesse ne soit rsolue.

Dans cet article

Syntaxe

js
Atomics.waitAsync(typedArray, index, value)
Atomics.waitAsync(typedArray, index, value, timeout)

Paramtres

typedArray

Un objet Int32Array ou BigInt64Array qui observe un SharedArrayBuffer.

index

La position au sein du tableau typ typedArray laquelle on souhaite attendre.

value

La valeur attendue tester.

timeout Facultatif

Le temps d'attente en millisecondes. NaN (et les valeurs qui sont converties en NaN, comme undefined) devient Infinity. Les valeurs ngatives deviennent 0.

Valeur de retour

Un objet (Object) avec les proprits suivantes :

async

Un boolen indiquant si la proprit value est une Promise ou non.

value

Si async est false, ce sera une chane de caractres qui est soit "not-equal" soit "timed-out" (uniquement lorsque le paramtre timeout est 0). Si async est true, ce sera une Promise qui est rsolue avec une valeur de chane, soit "ok" soit "timed-out". La promesse n'est jamais rejete.

Exceptions

TypeError

Leve si typedArray n'est pas un objet Int32Array ou un BigInt64Array qui observe un SharedArrayBuffer.

RangeError

Leve si index est hors des limites de typedArray.

Exemples

Notez que ces exemples ne peuvent pas tre excuts directement depuis la console ou une page web arbitraire, car SharedArrayBuffer n'est pas dfini moins que ses exigences de scurit ne soient respectes.

Utiliser la mthode Atomics.waitAsync()

Soit un tableau de mmoire partage Int32Array :

js
// Cre un SharedArrayBuffer avec une taille en octets
const sab = new SharedArrayBuffer(1024);
const int32 = new Int32Array(sab);

Un processus de lecture est en train de dormir et d'attendre sur l'emplacement 0 qui devrait tre 0. Le result.value sera une promesse.

js
const resultat = Atomics.waitAsync(int32, 0, 0, 1000);
// { async: true, value: Promise {<pending>} }

Dans le processus de lecture ou dans un autre processus, l'emplacement mmoire 0 est appel et la promesse peut tre rsolue avec "ok".

js
Atomics.notify(int32, 0);
// { async: true, value: Promise {<fulfilled>: 'ok'} }

Si elle ne se rsout pas en "ok", la valeur dans la mmoire partage n'tait pas celle attendue (la valeur serait "not-equal" au lieu d'une promesse) ou le dlai d'attente a t atteint (la promesse se rsoudra en "time-out").

Spcifications

Spcification
ECMAScript 2027 LanguageSpecification
# sec-atomics.waitasync

Compatibilit des navigateurs

Voir aussi


Web Proxy Viewer  |  New URL  |  Original Page