setTimeout
์ ๋ฆฌ
๋ฌด๊ฑฐ์ด ์์ ์ ๋๋ ์ ์ฒ๋ฆฌ ํ ์ ์๋ค.
promise๋ก ํด๋ ๋์ง ์๋?
๋ธ๋ผ์ฐ์ ์์ ๋จผ์ ๋ ๋๋ง๋ ํ ๋น๋๊ธฐ์ ์ผ๋ก ์ฒ๋ฆฌ ๊ฐ๋ฅํ๋ค
settimout์ 0์ผ๋ก ํด๋ ์ต์ 4ms๊ฐ ์ง๋์ผ ํธ์ถ๋๋ค.
queueMicrotask๊ฐ ์์ง๋ง, IE์ฃ์ ์ง์ ์ํ๋ค.
๊ฐ๋จํ sleep ์ฝ๋
const sleep = (delay) => new Promise((resolve) => setTimeout(resolve, delay));
๋ถ์ฐ ์์ ํ๊ธฐ. ๋์ถฉ ๋ง๋ค์๋๋ฐ ์์ธ๋ก ์๋๋ค.
const sleep = (delay) => new Promise((resolve) => setTimeout(resolve, delay));
// dealy 10ms
// start ์์ 0
// end ๋ 1000
// n n๊ฐ์ฉ ์ฒ๋ฆฌํ๊ธฐ
// callback : (index) => void
async function divideProcess(delay,start,end,n,callback){
let i = start;
while(i<end+1){
for(let k = 0; k < n+1;k++){
if(i>=end+1) break;
callback(i++);
}
await sleep(delay)
}
}
divideProcess(100,50,100,4,console.log)
let i = 0;
while(i<10000){
console.log(i++)
}
Last updated
Was this helpful?