JavaScript Academy · पाठ

AbortController से अनुरोध रद्द करना

चल रहे अनुरोधों को व्यवस्थित रूप से रद्द कीजिए।

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

AbortController से अनुरोध रद्द करना, CoddyKit पर JavaScript Academy का एक निःशुल्क पाठ है। यह 4 में से 4वाँ पाठ है। इस अध्ययन पथ के 3 तक कोई भी पाठ पूरा पढ़ना निःशुल्क है — इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ व्यावहारिक अभ्यास भी उपलब्ध कराता है। यह JavaScript Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। JavaScript Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

अनुरोध रद्द क्यों करें

कभी-कभी आप ऐसा अनुरोध शुरू कर देते हैं जिसकी अब आवश्यकता नहीं रहती: उपयोगकर्ता दूसरे पृष्ठ पर चला जाता है, नई खोज लिखता है या timeout समाप्त हो जाता है। AbortController आपको चल रहे फ़ेच को रद्द करने देता है।

controller बनाना

एक AbortController बनाइए। यह एक signal उपलब्ध कराता है, जिसे आप फ़ेच में पास करते हैं, और रद्द करने के लिए abort() विधि देता है।

const controller = new AbortController();
console.log(controller.signal); // an AbortSignal

signal पास करना

विकल्प ऑब्जेक्ट के माध्यम से controller signal को फ़ेच में दीजिए। अब अनुरोध रद्द किया जा सकता है।

fetch(url, { signal: controller.signal });

abort कॉल करना

रद्द करने के लिए controller.abort() कॉल कीजिए। लंबित फ़ेच Promise एक AbortError के साथ अस्वीकार हो जाता है।

const controller = new AbortController();
fetch(url, { signal: controller.signal });
controller.abort(); // cancels the request

AbortError पकड़ना

अपने catch में err.name === "AbortError" जाँचकर जानबूझकर किए गए रद्दीकरण और वास्तविक विफलता में अंतर कीजिए।

try {
  await fetch(url, { signal: controller.signal });
} catch (err) {
  if (err.name === "AbortError") console.log("Cancelled");
  else throw err;
}

timeout पैटर्न

धीमे अनुरोधों को अपने-आप रद्द करने के लिए setTimeout के साथ इसका संयोजन कीजिए। यदि अनुरोध पहले पूरा हो जाए, तो टाइमर हटाइए।

const c = new AbortController();
const t = setTimeout(() => c.abort(), 5000);
await fetch(url, { signal: c.signal });
clearTimeout(t);

अंतर्निहित timeout सहायक

आधुनिक परिवेशों में AbortSignal.timeout(ms) उपलब्ध होता है, जो अपने-आप रद्द होने वाला signal लौटाता है। यह स्वयं setTimeout जोड़ने की तुलना में अधिक साफ़ तरीका है।

fetch(url, { signal: AbortSignal.timeout(5000) });

पिछली खोज रद्द करना

टाइप करके खोजने वाली सुविधा में नई खोज शुरू करने से पहले पिछला अनुरोध रद्द कर दीजिए। इससे पुराने उत्तरों को नए परिणामों पर लिखने से रोका जा सकता है।

let current = null;
function search(q) {
  if (current) current.abort();
  current = new AbortController();
  return fetch("/search?q=" + q, { signal: current.signal });
}

एक signal, कई फ़ेच अनुरोध

एक signal एक साथ कई अनुरोधों को रद्द कर सकता है। कई फ़ेच अनुरोधों में वही signal पास कीजिए और एक abort() से वे सभी रद्द हो जाएँगे।

const c = new AbortController();
fetch(a, { signal: c.signal });
fetch(b, { signal: c.signal });
c.abort(); // cancels both

पहले से रद्द signal

यदि फ़ेच में पास करते समय signal पहले ही रद्द हो चुका हो, तो अनुरोध तुरंत अस्वीकार हो जाता है। उसकी स्थिति जानने के लिए signal.aborted जाँचिए।

if (controller.signal.aborted) console.log("already cancelled");

अनमाउंट होने पर सफ़ाई

घटक-आधारित यूआई में घटक नष्ट होने पर लंबित अनुरोधों को रद्द कर दीजिए, ताकि ऐसी चीज़ की स्थिति सेट न हो जो अब मौजूद नहीं है।

const controller = new AbortController();
// on teardown:
controller.abort();

त्वरित जाँच

फ़ेच अनुरोधों को रद्द करना।

पुनरावलोकन

एक AbortController बनाइए, उसका signal फ़ेच में पास कीजिए और रद्द करने के लिए abort() कॉल कीजिए। Promise एक AbortError के साथ अस्वीकार होता है, जिसका नाम देखकर आप उसका पता लगा सकते हैं। इसका उपयोग timeout (AbortSignal.timeout), पिछली खोज रद्द करने, कई अनुरोधों को रद्द करने और घटक हटने पर सफ़ाई के लिए कीजिए।

शुरुआत निःशुल्क

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

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

पाठ्यक्रम
59
पाठ
200

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

क्या “AbortController से अनुरोध रद्द करना” पाठ निःशुल्क है?

हाँ — JavaScript Academy अध्ययन पथ के 3 तक कोई भी पाठ, जिसमें “AbortController से अनुरोध रद्द करना” भी शामिल है, यहाँ वेब पर पूरा पढ़ना निःशुल्क है। इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ इंटरैक्टिव अभ्यास भी उपलब्ध कराता है। JavaScript Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

“AbortController से अनुरोध रद्द करना” में मैं क्या सीखूँगा?

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

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

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

“AbortController से अनुरोध रद्द करना” पाठ पूरा करने में कितना समय लगता है?

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

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

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

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

  1. GET अनुरोध करना
  2. POST और डेटा भेजना
  3. त्रुटियाँ और स्थिति कोड संभालना
  4. AbortController से अनुरोध रद्द करना
← JavaScript Academy पर वापस जाएँ