The thunkMiddleware intercepts and calls ThunkActions, which is simply a
fancy name for any function that takes 1 argument: a Redux Store. This
allows you to dispatch functions (aka ThunkActions) to your Store that can
perform asynchronous work, then dispatch actions using the Store after the
work is complete.
A function that can be dispatched as an action to a Redux Store and
intercepted by the the thunkMiddleware. It can be used to delay the
dispatch of an action, or to dispatch only if a certain condition is met.
A function that can be dispatched as an action to a Redux Store and
intercepted by the the ExtraArgumentThunkMiddleware. It can be used to
delay the dispatch of an action, or to dispatch only if a certain condition
is met.