Week 4. 컴포넌트, 비동기, API 다루기
클로저 발표랑 과제 준비 하느라 강의가 좀 밀려서 이번 주에 같이 듣기로 했다.
싱글 스레드
비동기
- callback
AJAX
promise
async
, await
fetch api
- XMLHTTPRequest 대체
history api
낙관적 업데이트
setTimeout
과 clearTimeout
사용const debounce = (callback, delay) => {
let timerID = null // 자유변수
return event => {
if (timerID) clearTimeout(timerID); // delay 시간보다 이벤트가 발생 시 직전 timer를 클리어
timerID = setTimeout(callback, delay, event); // delay 시간을 넘기면 callback 실행
}
debounce
가 호출되면 timerID가 falsy한 값(null, undefined...) 일 땐 clearTimeout
이 실행되지 않음.timer API
를 호출하고 콜스택에서 제거된다.timer API
는 delay만큼 callback 함수 카운트 다운을 시작한다.이벤트 큐
로 넘기게 되고,서버에 부담을 주는 불필요한 처리를 줄이고, 사용자가 입력을 완료했을 때 AJAX를 요청할 수 있다.