Redux Thunk es un software intermedio que le permite devolver funciones, en lugar de solo acciones, dentro de Redux 1 . Esto permite acciones retrasadas, incluso trabajar con promesas.
La razón por la que usamos este middleware es porque no todas las acciones que realizamos serán sincrónicas y algunas no están sincronizadas, como el uso de axios para enviar una solicitud de obtención. Esto tomará un poco de tiempo y el simple redux no tiene en cuenta este comportamiento. Entonces, Redux-thunk viene al rescate al permitirnos enviar acciones de forma asíncrona, de modo que podamos permitir que estas promesas se resuelvan.
Ejemplo 1:
```javascript
const INCREMENT_COUNTER = 'INCREMENT_COUNTER';
function increment() {
return {
type: INCREMENT_COUNTER
};
}
function incrementAsync() {
return dispatch => {
setTimeout(() => {
// Yay! Can invoke sync or async actions with `dispatch`
Redux Thunk se puede instalar usando `npm install redux-thunk --save` o `yarn add redux-thunk` con la línea de comandos. Debido a que es una herramienta de Redux, también necesitará tener configurado Redux. Una vez instalado, se habilita utilizando `applyMiddleware()` :
```javascript
import { createStore, applyMiddleware } from 'redux';