Understanding Thunks in Redux Toolkit
A thunk in Redux is a function that allows you to write asynchronous logic that interacts with the Redux store. Instead of returning a plain action object, a thunk returns a function that can perform side effects like API calls, delays, or conditional dispatches before dispatching regular actions.
Key Features of Thunks
- **1. Async Logic:** Thunks handle asynchronous operations such as fetching data from an API.
 - **2. Conditional Dispatch:** You can dispatch different actions based on certain conditions.
 - **3. Side Effects:** Thunks can trigger side effects before updating the Redux state.
 - **4. Integration with Middleware:** Redux Thunk middleware enables this pattern by interpreting functions returned from action creators.
 
Example: Basic Redux Thunk
Here, the thunk `fetchUser` dispatches multiple actions depending on the outcome of the asynchronous API call.
Thunk Usage in Redux Toolkit (createAsyncThunk)
`createAsyncThunk` simplifies thunk creation by handling action types (`pending`, `fulfilled`, `rejected`) automatically.
When to Use Thunks
- **-** When fetching data from an API before updating the store.
 - **-** When performing complex synchronous logic before dispatching actions.
 - **-** When chaining multiple dispatches based on async results.
 
In summary, thunks are middleware-powered functions that let Redux handle asynchronous workflows cleanly, and Redux Toolkit’s `createAsyncThunk` makes them easier to use and maintain.