JavaScript
2021.08.05
아무리 검색해도 잘 나오지 않는다... 😭
setInterval
setTimeout
sleep
const sleep = (ms = 1000) => new Promise((resolve, reject) => setTimeout(resolve, ms)); const exTimer = async (maxSec) => { nLoopSec = 0; while (maxSec > nLoopSec) { await sleep(); nLoopSec++; console.log(nLoopSec); } }; const maxSec = 100; // 100초 exTimer(maxSec);
Date
Previous
[Computer Science] 멀티 스레드 스케줄링 & 스레드 스케줄링 방식
Next
[JavaScript] 싱글톤
Ranohub
setTimeout의 동작 방식
EVENT LOOP는 무작정 어디에선가 일이 나오기만을 기다리면서 계속 돌고있는다 == 논블락
그러면 해당 메서드에 전달됐던 Callback 이 Queue로 넘어간다.
만약 콜스택에서 무언가 실행되고 있다면(비어있지 않다면) EVENT LOOP 는 QUEUE에 대기한채 기다리고 있는다.
그러면 이제 EVENT LOOP 는 QUEUE 에 있는 콜백메서드를 JS의 콜스택으로 이동시킨다.
정확도 높은 Timer를 구현하는 방법은 뭐가 있을까..?
아무리 검색해도 잘 나오지 않는다... 😭
setInterval을 활용하여 타이머를 구현 (1000 ==> 1초)에 한번씩 돌아가도록setTimeout을 활용한sleep메소드 생성하여 처리Date클래스를 사용하여 처리하는 것이 더 정확한 방법이란 말이 있음!!참고자료