728x90
setTimeout vs setInterval
๋น๋๊ธฐ ์ฒ๋ฆฌ ๋ฐฉ๋ฒ - Promise, Generator ํจ์๋ฅผ ์ด์ฉํ ๋น๋๊ธฐ ์ฒ๋ฆฌ
ํธ์ถ ์ค์ผ์ค๋ง ํจ์ setTimeout(), setInterval()
setTimeout() | setInterval() |
์ผ์ ์๊ฐ "ํ์" ํจ์๋ฅผ ํ๋ฒ๋ง ์คํ | ์ผ์ ์๊ฐ"๋ง๋ค" ํจ์๋ฅผ ์ฃผ๊ธฐ์ ์ผ๋ก ์คํ |
ํธ์ถ ์ค์ผ์ค๋ง ์ทจ์ - clearTimeout | ํธ์ถ ์ค์ผ์ค๋ง ์ทจ์ - clearInterval |
setTimeout()
- setTimeout(ํจ์๋ช , ์ง์ฐ์๊ฐ, ์ธ์๊ฐ) : ์ง์ฐํธ์ถ, ์๊ฐ๋จ์๋ millisecond, 1000=1์ด , ๊ธฐ๋ณธ๊ฐ 0
function testHello(){
console.log("hello!");
}
//1
testHello();
//2
setTimeout(testHello,4000)
//3
console.log("bye~");
// 1 -> 3 -> 2
// hello! -> bye~ -> hello! ์์ผ๋ก ์ถ๋ ฅ๋๋ค = ๋น๋๊ธฐ ์ฒ๋ฆฌ๋ฐฉ์
= ๋น๋๊ธฐ ์ฒ๋ฆฌ๋ฐฉ์
: 4์ด๋ฅผ ๊ธฐ๋ค๋ ธ๋ค๊ฐ ๋ค์ ์ฝ๋๋ฅผ ์ํํ๋ ๊ฒ์ด ์๋๋ผ,
์ผ๋จ setTimeout()์ ์คํํ ํ, ๋ฐ๋ก ๋ค์ ์ฝ๋์ธ console.log("bye~")๋ก ๋์ด๊ฐ ์ถ๋ ฅํ์์ต๋๋ค.
function testHello2(t){
console.log(t);
}
setTimeout(testHello2,2000,"hi~"); // ์ฃผ์! ํจ์๋ช
๋ง ๊ธฐ์ฌ (ํจ์ ํธ์ถ์ด ์๋.)
// 2์ด๋ค์ 'hi~' ์ถ๋ ฅ
setTimeout(console.log('a'), 4000); //'a' - ์ง์ฐ์ด ๋์ง ์๊ณ , ๋ฐ๋ก ํจ์๊ฐ ์คํ๋จ.
setTimeout((a)=>console.log(a), 4000, 'a'); //4์ด๋ค์ 'a' ์ถ๋ ฅ
setTimeout ํธ์ถ > ํ์ด๋จธ ์๋ณ์ ๋ฐํ > ์ซ์(number)
const tid=setTimeout((a)=>console.log(a), 4000,"์๋
");
console.log("ํธ์ถ >>",tid); //ํธ์ถ >> 36105
//4์ด ๋ค์ '์๋
' ์ถ๋ ฅ
const ti=setTimeout((a)=>console.log(a), 2000,"aaa");
console.log("ํธ์ถ >>",ti); //ํธ์ถ >>39340
//2์ด ๋ค์ 'aaa' ์ถ๋ ฅ
setInterval()
// 1์ด ๊ฐ๊ฒฉ์ผ๋ก ๋ฌธ์์ด ์ถ๋ ฅ
const Iid=setInterval(()=>console.log('korea'), 1000);
//์ค์งํ๋ ๋ฐฉ๋ฒ
const myStop=(Iid)=>{
clearInterval(Iid);
}
//์ฆ์ ์ค์งํ๊ธฐ
myStop(Iid);
//5์ด ๋ค์ ์ค์งํ๊ธฐ (์ง์ฐํธ์ถ)
//๋ฐฉ๋ฒ 1
setTimeout(myStop, 5000, Iid);
//๋ฐฉ๋ฒ 2
setTimeout(()=>{myStop(Iid)},5000);
//ํ๋ฆฐ ๋ฐฉ๋ฒ
setTimeout(myStop(tid),5000); // ์ฆ์ ์ค์ง๋จ.
setTimeout(()=> console.log('aaa'),3000); //1๋ฒ๋ง ์ถ๋ ฅ - 'aaa'
setInterval(console.log('setInterval'),2000) //1๋ฒ๋ง ์ถ๋ ฅ - ์ฃผ๊ธฐ์ ์ธ ์ถ๋ ฅx
//์ฌ๋ฐ๋ฅธ ๋ฐฉ๋ฒ
setInterval(()=>console.log('setInterval'),2000) //ํจ์๊ฐ ์์ ์์๋, ์ฃผ๊ธฐ์ ์ผ๋ก ๋ฐ๋ณต์คํ
๊ณ์ ์ฆ๊ฐํ๋ ๊ฐ์ clearInterval() ์ฌ์ฉํ์ฌ ์ค์ง
// 10์ด ๋์, 'ํ์ด๋จธ ์๋ณ์' 1์ด๋ง๋ค ์ถ๋ ฅํ๊ธฐ
let count=0;
let Iid2=setInterval(()=>{
console.log(Iid2);
count++;
if(count==10){
clearInterval(Iid2);
}
},1000)
์ฐ์ต๋ฌธ์ ) 2์ด๋ง๋ค ์ถ๋ ฅํ๋ ์๊ณ๋ฅผ ๋ง๋ค์ด๋ผ!
//๋ฐฉ๋ฒ 1
function myClock(){
let d=new Date();
//์ return ๊ฐ์ --> 0~11, 0๋ถํฐ ์์ --> +1
console.log('ํ์ฌ์๊ฐ์', d.getMonth()+1,'์',d.getDate(),'์ผ ', d.getHours(),'์ ',d.getMinutes(),'๋ถ ', d.getSeconds(),'์ด ์
๋๋ค.');
}
let clock=setInterval(myClock, 2000);
setTimeout(()=>{clearInterval(clock)}.10000); //10์ด ๋์๋ง.
//๋ฐฉ๋ฒ 2
let cnt=0
function myClock(){
let d=new Date();
console.log('ํ์ฌ์๊ฐ์', d.getMonth()+1,'์',d.getDate(),'์ผ ', d.getHours(),'์ ',d.getMinutes(),'๋ถ ', d.getSeconds(),'์ด ์
๋๋ค.');
cnt++
if(cnt!=10){ //20์ด ๋์
setTimeout(myClock,2000)
}
}
myClock();
728x90
'javascript > ES6' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๊ฐ์ฒด(Object) (0) | 2022.11.29 |
---|---|
ES6 javascript : ๋น๋๊ธฐ ์ฒ๋ฆฌ(callback, Promise, Generator) (0) | 2022.01.27 |
ES6 javascript ๊ฐ์ฒด : ์ ๋๋ ์ดํฐ(Generator), ๋น๋๊ธฐ (0) | 2022.01.24 |
ES6 javascript ๊ฐ์ฒด : ํ๋กํ ํ์ (prototype), __proto__ (0) | 2022.01.19 |
ES6 javascript : Symbol(์ฌ๋ณผ) (0) | 2022.01.18 |