๐ ์๋ฐ์คํฌ๋ฆฝํธ์ sleep() & wait() ๋๊ธฐ ํจ์ ์ฐ๊ธฐ
์๋ฐ์คํฌ๋ฆฝํธ sleep(), wait() ๋๊ธฐ ํจ์
๋ณดํต C์ธ์ด, ์๋ฐ, ํ์ด์ฌ์์ ๋ณด๋ฉด, ์
๋ ฅํ ์๊ฐ ๋งํผ ์ฝ๋์ ์คํ์ ๋ฉ์ถ๋ ์ผ๋ฐ์ ์ธ ๊ธฐ๋ฅ์ผ๋ก sleep()์ด๋ wait() ๊ฐ์ ํจ์๊ฐ ์กด์ฌํ๋ค. โํ์ง๋ง ์๋ฐ์คํฌ๋ฆฝํธ์์ ๋ฐ๋ก sleep()ํจ์๊ฐ ์กด์ฌํ์ง ์์ผ๋, ์ง์ ๊ฐ๋ฐ์๊ฐ ๊ตฌํํด์ฃผ์ด์ผ ํ๋ค.
while๋ฌธ ํ์ฉ
์๊ฐ๋ ์ง๋ฅผ ์ป๋ ํจ์ Date() ์ while๋ฌธ ์กฐ๊ฑด์ผ๋ก 3์ด ์ง๋๊ฑธ ํ์ธ
function wait(sec) {
let start = Date.now(), now = start;
while (now - start < sec * 1000) {
now = Date.now();
}
}
console.log(11)
wait(3);
console.log(22)
Promise ๊ฐ์ฒด ํ์ฉโ
์ฐ์ Promise ๊ฐ์ฒด๋ฅผ ๋ง๋ค๊ณ setTimeout์ผ๋ก ์๊ฐ ms ํ์ resolveํ๊ฒ ํ๋ค. ์ด ๋น๋๊ธฐ Promiseํจ์๋ฅผ await์ผ๋ก ๋๊ธฐ์ฒ๋ฆฌํด์ฃผ๋ฉด ๋ง์น sleep๊ณผ ๊ฐ์ ๊ธฐ๋ฅ์ ํ๊ฒ ๋๋ค.
function sleep(sec) {
return new Promise(resolve => setTimeout(resolve, sec * 1000));
} // ํจ์์ ์
(async () => {
... ์ฝ๋1
await sleep(2); // 2์ด๋๊ธฐ
... ์ฝ๋2
})();
// ์ต๊ทผ ์ถ๊ฐ๋ Top-Level Await ๋ฌธ๋ฒ์ผ๋ก ์ธํด ๋ฐ๋ก await๋ฅผ ์ฌ์ฉํ ์๋ ์๋ค.
... ์ฝ๋1
await sleep(2); // 2์ด๋๊ธฐ
... ์ฝ๋2
[JS] ๐ ๋น๋๊ธฐ์ฒ๋ฆฌ (async / await) ๊ฐ๋ & ๋ฌธ๋ฒ ๐ฏ ์ ๋ฆฌ
๋น๋๊ธฐ ์ฒ๋ฆฌ ๋ฐฉ์ ์๋ฐ์คํฌ๋ฆฝํธ๋ ์ฑ๊ธ ์ค๋ ๋ ํ๋ก๊ทธ๋๋ฐ์ธ์ด๊ธฐ ๋๋ฌธ์ ๋น๋๊ธฐ์ฒ๋ฆฌ๊ฐ ํ์์ ์ด๋ค. ๋น๋๊ธฐ ์ฒ๋ฆฌ๋ ๊ทธ ๊ฒฐ๊ณผ๊ฐ ์ธ์ ๋ฐํ๋ ์ง ์์ ์๊ธฐ ๋๋ฌธ์ ๋๊ธฐ์์ผ๋ก ์ฒ๋ฆฌํ๋ ๊ธฐ๋ฒ๋ค์ด
inpa.tistory.com