참고한 블로그 : Git / Push한 커밋 수정·삭제
git push한 후 commit 수정
git reset --soft HEAD~1
//내용 수정 후 커밋
git push -f
git push한 후 commit 삭제
git reset --hard HEAD~1
git push -f
Debounce
1) Lodash
: 배열, 객체를 처리할 수 있는 다양한 메서드 지원 (Lodash - debounce 링크)
2) debounce
fn
)와 대기할 시간(timer
)을 인자로 받는다.timer
가 끝나기 전에 이벤트가 다시 발생할 경우, timer
를 리셋한다. timer
가 끝날 때까지 이벤트가 재발생 하지 않아 timer
가 끝날 경우 fn
을 실행한다.3) ⭐ debounce 구현
출처 블로그
클로저를 사용해 사이드이팩트인 timeout을 관리하는 구조이다. 클로저는 스코프체인 상의 변수들에 접근할 수 있다.
function debounce(callback, limit) {
let timer = null;
return function() {
const context = this;
const args = arguments;
clearTimeout(timer);
timer = setTimeout(() => {
// callback함수가 실행될 때 this가 정해짐
callback.apply(context, args);
}, limit);
}
}
callback
: 실행할 함수limit
: callback
함수 실행 대기 시간limit
이내에 debounce
가 재호출 될 경우, clearTimout(timer)
로 이전의 timer
가 제거됨apply
메소드로 this
의 범위를 지정하는데, 여기서 this
는 callback
함수가 실행될 때 그 컨텍스트의 this
가 배정된다.4) Debounce에 Promise 적용
참고블로그__Javascript Debounce 구현 하기