리덕스에서 많이 사용하고 있는 미들웨어중에 하나이며, thunk를 사용하면 우리가 dispatch를 할때 객체가 아닌 함수를 dispatch 할 수 있다.
그래서 중간에 우리가 하고자 하는 작업을 함수를 통해 넣을 수 있고, 아래 흐름처럼 실행할 수 있다.
이 함수를 thunk 함수라고 한다.
dispatch(함수) → 함수실행 → 함수안에서 dispatch(객체)
특정 코드의 연산이 끝날 때까지 코드의 실행을 멈추지 않고 다음 코드를 먼저 실행하는 자바스크립트의 특성을 의미한다.
비동기 작업의 최종 완료 또는 실패를 나타내는 객체입니다.
Temporal Dead Zone 은 스코프의 시작 지점부터 초기화 시작 지점까지를 말한다.
⇒ 초기화되지 않은 변수가 있는 곳을 Temporal Dead Zone 이라고 한다
TDZ는 const, let, class 구문의 유효성에 영향을 미치는 개념이며,
선언 전에 변수를 사용하는 것을 허용하지 않는다.
하지만 var 는 선언 전에도 사용할 수 있기 때문에 var 사용은 피하는 것이 좋다.