참고한 블로그 : Git / Push한 커밋 수정·삭제
git push한 후 commit 수정
git reset --soft HEAD~1
//내용 수정 후 커밋
git push -f
git push한 후 commit 삭제
git reset --hard HEAD~1
git push -f
Debounce1) 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 구현 하기