setTimeoutκ³Ό setIntervalμ μΈ‘μ μκ°μ΄ μ§λ νμ ν¨μλ₯Ό μ€νμν€κΈ° μν λ©μλμ΄λ©° μλ°μ€ν¬λ¦½νΈκ° μλ λΈλΌμ°μ API(WebAPI)μ Node.jsμμ μ§μνλ€.
let timerId = setTimeout(func, [delay], [args1], [args], ...)setTimeout λ©μλλ νμ΄λ¨Έκ° μλ£λ ν μ€νλλ ν¨μμΈ funcμ νμ΄λ¨Έλ₯Ό μ€μ νλ delay, funcμ μ λ¬λλ νλΌλ―Έν°μΈ argsλ₯Ό μΈμλ‘ κ°μ§λ€.
setTimeout λ©μλλ νμ΄λ¨Έκ° μλ£λλ©΄ funcλ₯Ό 1ν μ€νμν¨λ€.
function sayHi() {
alert('Hi');
}
setTimeout(sayHi, 1000);
// 1000msνμ alert "Hi"μΆλ ₯function sayHi(phrase, who) {
alert( phrase + ', ' + who );
}
setTimeout(sayHi, 1000, "Hi", "Han"); // Hi, HansetTimeoutμ numberνμ
μ timer μλ³μλ₯Ό 리ν΄νλλ°, clearTimeoutμ μ΄μ©ν΄ νμ΄λ¨Έκ° μλ£λ ν ν¨μκ° μ€νλλ κ²μ μ·¨μ ν μμλ€.
let timerId = setTimeout(() => {
alert('Hi');
), 10000};
clearTimeout(timerId);let timerId = setInterval(func|code, [delay], [arg1], [arg2], ...)setIntervalμ setTimeoutκ³Ό λ§μ°¬κ°μ§λ‘ νμ΄λ¨Έ μλ£ ν μ€νλλ ν¨μμΈ funcμ νμ΄λ¨Έλ₯Ό μ€μ νλ delay, funcμ μ λ¬λλ νλΌλ―Έν°μΈ argsλ₯Ό μΈμλ‘ κ°μ§λ€.
setIntervalμ νμ΄λ¨Έ κ°κ²©μ λ°λΌ μ£ΌκΈ°μ μΌλ‘ funcλ₯Ό μ€ννλ©° setTimeoutκ³Ό κ°μ΄ clearIntervalμ ν΅ν΄ μ£ΌκΈ°μ μΌλ‘ ν¨μκ° μ€νλλκ²μ μ·¨μ ν μ μλ€.
let timerId = setInterval(() => alert('tick'), 2000);
setTimeout(() => { clearInterval(timerId); alert('stop'); }, 5000);
// 2μ΄, 4μ΄μ 'tick' alert μΆλ ₯
// 5μ΄μ 'stop' alert μΆλ ₯ ν setInterval μ€ν μ€μ§setTimeoutκ³Ό setTimeoutμ μ°¨μ΄μ μ μλμ κ°λ€.
-
setIntervalμ μ΄μ ν¨μ νΈμΆμ μνμ μκ΄ μμ΄ μκ° κ°κ²©λ§λ€ ν¨μλ₯Ό μ½ μ€νμ μ λ¬νλ λ°λ©΄,setTimeoutμ ν¨μκ° μ€νλκ³ μλ‘μ΄ νΈμΆμ΄ μμλλ§ λ€μ νΈμΆμ μ€ννλ€. -
μλ₯Ό λ€μ΄,
setIntervalμ μκ°κ°κ²©μ΄ 1000msμ΄κ³ ν¨μλ₯Ό μ€ννλ μκ°μ΄ 300msμΌλ, νΈμΆ μ’ λ£μ λ€μ νΈμΆκΉμ§μ μκ° κ°κ²©μ 700msκ° λλ€.
setIntervalλμ setTimeoutμ μ¬κ·μ μΌλ‘ μ΄μ©ν μ μλ€.
function func() {
console.log("It's been 2 second");
setTimeout(repeatingFunc, 2000);
}
setTimeout(func, 2000);
// setTimeoutμ μ¬κ·μ μΌλ‘ μμ±ν΄ funcλ₯Ό 2μ΄λ§λ€ μ€ν-
λΈλΌμ°μ νκ²½κ³Ό μ 체μ μΈ μ½λνλ¦μ λ°λΌ λ°μνλ μ½κ°μ μΈν°λ² μ§μ°μ λ°©μ§ν μ μλ€..
-
λΉλκΈ° μμ μ κ²½μ° λ§€μ° λΉν¨μ¨μ μΈ κΈ΄ μμ² λκΈ°μ΄μ λ§λλ κ²μ λ°©μ§ν μ μλ€.
function repeatOften() {
// Do whatever
requestAnimationFrame(repeatOften);
}
requestAnimationFrame(repeatOften);requestAnimationFrameμ setIntervalμ μΈν°λ²μ λ§€μ° μκ² νμ λ μμ²μ΄ μ§μ°λλ λ¬Έμ λ₯Ό ν΄κ²°ν μ μλ λ©μλμ΄λ€.
setInterval λΉκ΅ν΄ requestAnimationFrameμ΄ κ°μ§λ μ₯μ μ λ€μκ³Ό κ°λ€.
-
λΈλΌμ°μ μμ μ΅μ ν ν μ μμ΄ λ λΆλλ¬μ΄ μ λλ©μ΄μ ν¨κ³Όλ₯Ό μ μ©ν μ μλ€.
-
λΉνμ±νλ νμμλ μ λλ©μ΄μ μ΄ μ€μ§λμ΄ CPUλ₯Ό ν¨μ¨μ μΌλ‘ μ΄μ©ν μ μλ€.
-
λ°°ν°λ¦¬λ₯Ό μ μ½ν μ μλ€.
-
cancelAnimationFrameμ ν΅ν΄ ν¨μμ μ€νμ μ·¨μ ν μ μλ€.
Reference