...A thunk is a function that wraps an expression in order to delay its evaluation. Redux Thunk middleware allows you to write action creators that, rather than return an action will return a function instead. If you want to delay the dispatch of an action, or to dispatch only after meeting a certain condition, then the thunk can be used.
Thunks are ideal middleware for a number of cases, in particular for basic Redux side effects logic, complex synchronous logic that must access the store, and simple async logic like AJAX requests.