To not choose between redux-thunk and redux-saga
npm install --save redux-thaga
...
import * as sagas from './sagas'
import createThagaMiddleware from 'redux-thaga'
const thaga = createThagaMiddleware(sagas)
const createStoreWithMiddlewares = applyMiddleware(thaga)(createStore)
...
Like thunk for async actions
export const asyncActionCreator = () => (dispatch, getState) => {
dispatch({
type: `REQUEST`
})
request()
.then(() =>
dispatch({
type: `SUCCESS`
})
)
}
Like saga
import {on} from 'redux-thaga'
export const onSomeAction = on(`SOME_ACTION_TYPE`, (dispatch, getState, action) => {
request()
.then(() => {
dispatch({
type: `ANOTHER_ACTION_TYPE`
})
})
})
MIT