๐Ÿ–Š๏ธ
Javascript-Advanced
  • Javascript ๊ณ ๊ธ‰
  • 1) Closure
    • Closure
    • Memory Leak
  • 2) Arrow Function
    • Class To Function ( babel )
    • Normal function vs Arrow Function
    • Class์—์„œ ์‚ฌ์šฉํ•˜์ง€๋งˆ!!!
    • ๊ทธ ์™ธ
  • 3) Hidden Class
    • Prototype Chainning
    • Hidden Class
    • Inline Cache
  • 4) setTimeout
    • setTimeout
  • 5) Nodejs
    • Execution-context
    • ๋‚ด๋ถ€ ๋™์ž‘ ์›๋ฆฌ
    • Crypto
  • 6) Thinking
    • ์š”์ฒญ์ด ๋ฌดํ•œ๋Œ€๋กœ ๋“ค์–ด์˜ค๋ฉด ์–ด๋–ป๊ฒŒ ๋ ๊นŒ?
Powered by GitBook
On this page
  1. 4) setTimeout

setTimeout

PreviousInline CacheNextExecution-context

Last updated 4 years ago

Was this helpful?

CtrlK

Was this helpful?

์ •๋ฆฌ

  1. ๋ฌด๊ฑฐ์šด ์ž‘์—…์€ ๋‚˜๋ˆ ์„œ ์ฒ˜๋ฆฌ ํ•  ์ˆ˜ ์žˆ๋‹ค.

    1. promise๋กœ ํ•ด๋„ ๋˜์ง€ ์•Š๋‚˜?

  2. ๋ธŒ๋ผ์šฐ์ €์—์„œ ๋จผ์ € ๋ Œ๋”๋ง๋œ ํ›„ ๋น„๋™๊ธฐ์ ์œผ๋กœ ์ฒ˜๋ฆฌ ๊ฐ€๋Šฅํ•˜๋‹ค

  3. settimout์„ 0์œผ๋กœ ํ•ด๋„ ์ตœ์†Œ 4ms๊ฐ€ ์ง€๋‚˜์•ผ ํ˜ธ์ถœ๋œ๋‹ค.

  4. queueMicrotask๊ฐ€ ์žˆ์ง€๋งŒ, IE์—ฃ์„œ ์ง€์› ์•ˆํ•œ๋‹ค.

  • https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/queueMicrotask

๊ฐ„๋‹จํ•œ 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++)
}

Event loop: microtasks and macrotasksiliakan
Logo