React Academy · पाठ

createAsyncThunk से एसिंक्रोनस लॉजिक

createAsyncThunk और लंबित/पूर्ण/अस्वीकृत जीवनचक्र से Redux में API कॉल संभालें।

पाठ 2, कुल 4 में से13 चरण

createAsyncThunk से एसिंक्रोनस लॉजिक, CoddyKit पर React Academy का एक निःशुल्क पाठ है। यह 4 में से 2वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह React Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। React Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

स्वागत है

इस पाठ में आप createAsyncThunk के साथ Redux में एपीआई कॉल संभालेंगे और अपनी स्लाइस में लंबित, पूर्ण और अस्वीकृत जीवन-चक्र क्रियाओं को संभालेंगे।

createAsyncThunk क्या है

createAsyncThunk एक थंक क्रिया-निर्माता बनाता है, जो तीन जीवन-चक्र क्रियाओं को अपने-आप भेजता है: लंबित (शुरू), पूर्ण (समाधानित) और अस्वीकृत (विफल)। आप प्रत्येक को extraReducers में संभालते हैं।

थंक परिभाषित करना

createAsyncThunk को एक प्रकार की स्ट्रिंग और अतुल्यकालिक पेलोड-निर्माता फ़ंक्शन के साथ कॉल करें। पूर्ण क्रिया के पेलोड के रूप में वह डेटा लौटाएँ जिसकी आपको आवश्यकता है।
import { createAsyncThunk } from '@reduxjs/toolkit';

export const fetchUser = createAsyncThunk(
  'users/fetchById',
  async (userId) => {
    const response = await fetch('/api/users/' + userId);
    return response.json(); // becomes action.payload on fulfilled
  }
);

extraReducers में संभालना

स्लाइस के extraReducers में तीनों जीवन-चक्र अवस्थाओं के मामले जोड़ें। लोडिंग, डेटा और त्रुटि की स्थिति को उसी के अनुसार प्रबंधित करें।
extraReducers: (builder) => {
  builder
    .addCase(fetchUser.pending, state => {
      state.loading = true;
      state.error = null;
    })
    .addCase(fetchUser.fulfilled, (state, action) => {
      state.loading = false;
      state.user = action.payload;
    })
    .addCase(fetchUser.rejected, (state, action) => {
      state.loading = false;
      state.error = action.error.message;
    });
}

थंक को dispatch करना

useDispatch से किसी कॉम्पोनेंट में थंक को dispatch करें। तर्क सीधे थंक क्रिया-निर्माता को दें।
const dispatch = useDispatch();
useEffect(() => {
  dispatch(fetchUser(userId));
}, [userId]);

थंक में state तक पहुँचना

पेलोड-निर्माता को अपना दूसरा तर्क thunkAPI ऑब्जेक्ट के रूप में मिलता है। वर्तमान Redux state पढ़ने के लिए thunkAPI.getState() और अन्य क्रियाएँ dispatch करने के लिए thunkAPI.dispatch() का उपयोग करें।
export const saveItem = createAsyncThunk(
  'items/save',
  async (item, { getState }) => {
    const { auth } = getState();
    return fetch('/api/items', {
      method: 'POST',
      headers: { Authorization: 'Bearer ' + auth.token },
      body: JSON.stringify(item),
    }).then(r => r.json());
  }
);

rejectWithValue से त्रुटियाँ संभालना

अस्वीकृत मामले में कस्टम त्रुटि पेलोड भेजने के लिए thunkAPI.rejectWithValue() का उपयोग करें। अस्वीकृत क्रिया के action.payload में आपका कस्टम त्रुटि ऑब्जेक्ट होगा।
export const fetchData = createAsyncThunk(
  'data/fetch',
  async (id, { rejectWithValue }) => {
    const res = await fetch('/api/' + id);
    if (!res.ok) return rejectWithValue({ status: res.status });
    return res.json();
  }
);
// In rejected case: action.payload.status is available

थंक रद्द करना

थंक के अंदर अपने fetch में AbortController signal पास करें। जब थंक को dispatch.abort() से रद्द किया जाता है, तो createAsyncThunk thunkAPI.signal के माध्यम से signal अपने-आप उपलब्ध कराता है।
async (id, { signal }) => {
  const res = await fetch('/api/' + id, { signal });
  return res.json();
}

dispatch किए गए थंक की प्रतीक्षा करना

किसी थंक का dispatch() एक Promise लौटाता है। अतुल्यकालिक कार्य पूरा होने का पता लगाने के लिए आप उसकी प्रतीक्षा कर सकते हैं; सेव करने के बाद रीडायरेक्ट जैसे पैटर्न में यह उपयोगी है।
const result = await dispatch(saveItem(data));
if (saveItem.fulfilled.match(result)) {
  navigate('/success');
}

बिल्डर नोटेशन बनाम ऑब्जेक्ट नोटेशन

extraReducers में builder.addCase कॉलबैक पैटर्न का उपयोग करें — यह टाइप-सुरक्षित और समर्थित है। हाल के RTK संस्करणों में पुराना ऑब्जेक्ट-कुंजी नोटेशन अप्रचलित है।

त्वरित जाँच

जब createAsyncThunk के अंदर का अतुल्यकालिक फ़ंक्शन कोई त्रुटि उत्पन्न करता है, तब क्या होता है?

पुनरावलोकन

createAsyncThunk लंबित, पूर्ण और अस्वीकृत क्रियाएँ अपने-आप बनाता है। extraReducers में तीनों को संभालें। कस्टम त्रुटि पेलोड के लिए rejectWithValue और थंक के अंदर वर्तमान state तक पहुँचने के लिए thunkAPI.getState() का उपयोग करें।

अगला चरण

अगला पाठ: **RTK Query: एंडपॉइंट और स्वचालित कैशिंग** — आप createApi से एपीआई एंडपॉइंट परिभाषित करेंगे और RTK Query को कैशिंग अपने-आप प्रबंधित करने देंगे।
शुरुआत निःशुल्क

एआई शिक्षक के साथ React सीखें — निःशुल्क

अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।

पाठ्यक्रम
88
पाठ
324

अक्सर पूछे जाने वाले प्रश्न

क्या “createAsyncThunk से एसिंक्रोनस लॉजिक” पाठ निःशुल्क है?

हाँ—“createAsyncThunk से एसिंक्रोनस लॉजिक” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और React Academy पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। React Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

“createAsyncThunk से एसिंक्रोनस लॉजिक” में मैं क्या सीखूँगा?

createAsyncThunk और लंबित/पूर्ण/अस्वीकृत जीवनचक्र से Redux में API कॉल संभालें। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ React Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या React Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर React Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 2वाँ पाठ है।

“createAsyncThunk से एसिंक्रोनस लॉजिक” पाठ पूरा करने में कितना समय लगता है?

CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।

क्या मैं इस React Academy पाठ में कोड लिख और चला सकता हूँ?

हाँ। हर React Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।

इस पाठ्यक्रम के सभी पाठ

  1. Redux Toolkit स्लाइस और createSlice
  2. createAsyncThunk से एसिंक्रोनस लॉजिक
  3. RTK Query: एंडपॉइंट और स्वचालित कैशिंग
  4. आशावादी अपडेट और कैश अमान्यकरण
← React Academy पर वापस जाएँ