This page was translated from English by the community. Learn more and join the MDN Web Docs community.

View in English Always switch to English

Atomics.waitAsync()

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

Atomics.waitAsync() ์ •์  ๋ฉ”์„œ๋“œ๋Š” ๊ณต์œ  ๋ฉ”๋ชจ๋ฆฌ ์œ„์น˜์—์„œ ๋น„๋™๊ธฐ์ ์œผ๋กœ ๋Œ€๊ธฐํ•˜๊ณ  Promise๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

Atomics.wait()์™€๋Š” ๋‹ค๋ฅด๊ฒŒ, waitAsync๋Š” ๋…ผ ๋ธ”๋กํ‚น์ด๋ฉฐ ๋ฉ”์ธ ์Šค๋ ˆ๋“œ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ฐธ๊ณ  : ์ด ์ž‘์—…์€ ์˜ค์ง ๊ณต์œ ๋œ Int32Array ํ˜น์€ BigInt64Array์—์„œ๋งŒ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค.

๊ตฌ๋ฌธ

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

๋งค๊ฐœ๋ณ€์ˆ˜

typedArray

๊ณต์œ ๋œ Int32Array ํ˜น์€ BigInt64Array.

index

typedArray์—์„œ์˜ ๋Œ€๊ธฐํ•˜๊ณ  ์žˆ๋Š” ์ธ๋ฑ์Šค.

value

ํ…Œ์ŠคํŠธํ•  ๊ธฐ๋Œ€๊ฐ’.

timeout Optional

๋Œ€๊ธฐ ์‹œ๊ฐ„(๋ฐ€๋ฆฌ์ดˆ). ์‹œ๊ฐ„์ด ๋ช…์‹œ๋˜์ง€ ์•Š์œผ๋ฉด Infinity์ž…๋‹ˆ๋‹ค.

๋ฐ˜ํ™˜ ๊ฐ’

๋‹ค์Œ ์†์„ฑ์„ ๊ฐ€์ง„ Object.

  • async
    • value ์†์„ฑ์ด Promise์ธ์ง€ ์•„๋‹Œ์ง€๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๋ถ€์šธ์ž…๋‹ˆ๋‹ค.
  • value
    • async๊ฐ€ false์ด๋ฉด, "not-equal" ๋˜๋Š” "time-out"(timeout ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ 0์ธ ๊ฒฝ์šฐ์—๋งŒ) ๋ฌธ์ž์—ด์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. async๊ฐ€ true์ด๋ฉด "ok" ๋˜๋Š” "timed-out" ๋ฌธ์ž์—ด ๊ฐ’์œผ๋กœ ์ดํ–‰๋˜๋Š” Promise๊ฐ€ ๋ฉ๋‹ˆ๋‹ค. ํ”„๋กœ๋ฏธ์Šค๋Š” ์ ˆ๋Œ€ ๊ฑฐ๋ถ€๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์˜ˆ์ œ

waitAsync() ์‚ฌ์šฉํ•˜๊ธฐ

๊ณต์œ ๋œ Int32Array์—์„œ

js
const sab = new SharedArrayBuffer(1024);
const int32 = new Int32Array(sab);

์ฝ๊ธฐ ์Šค๋ ˆ๋“œ๊ฐ€ 0์ด ๋  ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒ๋˜๋Š” ์œ„์น˜ 0์—์„œ ๋Œ€๊ธฐ ์ค‘์ž…๋‹ˆ๋‹ค. result.value์€ ํ”„๋กœ๋ฏธ์Šค์ž…๋‹ˆ๋‹ค.

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

์ฝ๊ธฐ ์Šค๋ ˆ๋“œ ๋˜๋Š” ๋‹ค๋ฅธ ์Šค๋ ˆ๋“œ์—์„œ ๋ฉ”๋ชจ๋ฆฌ ์œ„์น˜ 0์ด ํ˜ธ์ถœ๋˜๊ณ  ์ดํ–‰ ๊ฒฐ๊ณผ "ok" ๋ฌธ์ž์—ด์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

"ok"์œผ๋กœ ํ™•์ธ๋˜์ง€ ์•Š๋Š”๋‹ค๋ฉด 2๊ฐ€์ง€ ์›์ธ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ฒซ ๋ฒˆ์งธ ์›์ธ์€ ๊ณต์œ  ๋ฉ”๋ชจ๋ฆฌ ์œ„์น˜์˜ ๊ฐ’์ด ์˜ˆ์ƒ๊ณผ ๋‹ค๋ฅธ ๊ฒฝ์šฐ์ธ๋ฐ ์ด ๊ฒฝ์šฐ value๋Š” ํ”„๋กœ๋ฏธ์Šค ๋Œ€์‹  "not-equal"์ด ๋  ๋ฉ๋‹ˆ๋‹ค. ๋‘ ๋ฒˆ์งธ ์›์ธ์€ ์‹œ๊ฐ„์ด ๋งŒ๋ฃŒ(ํƒ€์ž„์•„์›ƒ)๋  ๊ฒฝ์šฐ๋กœ ํ”„๋กœ๋ฏธ์Šค ๊ฒฐ๊ณผ๋Š” ๋ฌธ์ž์—ด "time-out"์ž…๋‹ˆ๋‹ค.

๋ช…์„ธ์„œ

Specification
ECMAScriptยฎ 2026 Language Specification
# sec-atomics.waitasync

๋ธŒ๋ผ์šฐ์ € ํ˜ธํ™˜์„ฑ

๊ฐ™์ด ๋ณด๊ธฐ