Thunk (1/18)
1. What is a thunk in Redux?
    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.