리덕스를 사용한느 어플리케이션에서 비동기작업을 사용할때 가장 기본적인 방법으로 redux-thunk를 사용한다.
thunk의 장점으로는 직관적이며, 간단하다는 장점이 있다.
해당 미들웨어는 객체 대신 함수를 생성한느 액션 생성함수를 작성할 수 있도록 도와준다.
리덕스에서 기본적으로 액션 자체를 디스패치 한다.
일반 액션생성자는 다음과 같이 파라미터를 가지고 액션 객체를 생성하는 작업만 하게된다.
만약 특정 액션이 몇초뒤에 실행하게 하거나, 현재 상태에 따라 분기가 되어야 한다면 일반 액션생성자로는 구분할 수 없다.
하지만, redux-thunk는 이를 가능하게 한다.
또한, 위와 같이 getState를 통해 스토어의 상태에도 접근이 가능하다.