====== createAsyncThunk - асинхронні запити в Redux Toolkit ====== Redux Toolkit спрощує процес оголошення асинхронного генератора екшену за допомогою функції createAsyncThunk(). Першим аргументом вона приймає тип екшену, а другим функцію, яка повинна виконати HTTP-запит і повернути проміс із даними, які стануть значенням payload. Вона повертає асинхронний генератор екшену (операцію) при запуску якого виконається функція з кодом запиту. // src/redux/operations.js import axios from "axios"; import { createAsyncThunk } from "@reduxjs/toolkit"; axios.defaults.baseURL = "https://62584f320c918296a49543e7.mockapi.io"; export const fetchTasks = createAsyncThunk("tasks/fetchAll", async () => {   const response = await axios.get("/tasks");   return response.data; }); // src/redux/tasksSlice.js import { createSlice } from "@reduxjs/toolkit"; // Імпортуємо операцію import { fetchTasks } from "./operations"; const tasksSlice = createSlice({   name: "tasks",   initialState: {     items: [],     isLoading: false,     error: null,   },   // Додаємо обробку зовнішніх екшенів   extraReducers: builder => {     builder       .addCase(fetchTasks.pending, (state, action) => {тут код обробки стейтів})       .addCase(fetchTasks.fulfilled, (state, action) => {})       .addCase(fetchTasks.rejected, (state, action) => {});   }, }); export const tasksReducer = tasksSlice.reducer;