JavaScript Academy · पाठ

टाइमआउट और AbortController से रद्द करना

async कोड में टाइमआउट जोड़ें और AbortController से काम रद्द करें; कार्यों में सिग्नल जोड़कर उन्हें जल्दी रोकें।

पाठ 2, कुल 3 में से8 चरण

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

टाइमआउट और निरस्तीकरण क्यों?

लक्ष्य: लंबे समय तक चलने वाले टास्क को सुरक्षित रूप से रोकें।

  • सरल टाइमआउट जोड़ें
  • AbortController का उपयोग करें
  • अपने टास्क को सिग्नल से जोड़ें
  • टाइमर की सफ़ाई करें
टाइमआउट और AbortController से रद्द करना — चित्र 1

सिग्नल-सचेत टास्क

ऐसे टास्क बनाएँ, जो signal.abort को सुनें और रद्द किए जाने पर टाइमर रोक दें।

// Fake fetch that respects AbortSignal
function fakeFetch(ms, value, signal) {
  return new Promise(function (resolve, reject) {
    // Abort handler
    function onAbort() {
      clearTimeout(t);
      reject(new Error("aborted"));
    }

    // If already aborted
    if (signal && signal.aborted) {
      return reject(new Error("aborted"));
    }

    // Finish timer
    const t = setTimeout(function () {
      if (signal) {
        signal.removeEventListener("abort", onAbort);
      }
      resolve(value);
    }, ms);

    // Listen for abort
    if (signal) {
      signal.addEventListener("abort", onAbort);
    }
  });
}

fakeFetch(5, "OK").then(function (v) {
  console.log("fakeFetch:", v);
});
टाइमआउट और AbortController से रद्द करना — चित्र 2

Abort का प्रयोग

एक controller बनाएँ, उसका सिग्नल पास करें और रद्द करने के लिए abort() कॉल करें।

// AbortController cancels signal-aware tasks
const controller = new AbortController();

fakeFetch(20, "Too slow", controller.signal)
  .then(function (v) {
    console.log("done:", v);
  })
  .catch(function (e) {
    console.log("catch:", e.message);
  });

// Abort after a short delay
setTimeout(function () {
  controller.abort();
  console.log("aborted");
}, 5);
टाइमआउट और AbortController से रद्द करना — चित्र 3

टाइमआउट आवरण

यदि टास्क बहुत लंबा चले, तो उसे अस्वीकृत करने के लिए Promise.race का उपयोग करें; finally में टाइमर साफ़ करें।

// Add a timeout to any Promise with Promise.race
function withTimeout(promise, ms) {
  return Promise.race([
    promise,
    new Promise(function (_resolve, reject) {
      const t = setTimeout(function () {
        reject(new Error("timeout"));
      }, ms);
      // Small trick: clear timer when the main promise settles
      promise.finally(function () { clearTimeout(t); });
    })
  ]);
}

// Demo: this will time out
withTimeout(fakeFetch(30, "late"), 10)
  .then(function (v) { console.log("value:", v); })
  .catch(function (e) { console.log("timeout:", e.message); });
टाइमआउट और AbortController से रद्द करना — चित्र 4

टाइमआउट और abort साथ में

यदि टाइमआउट जीत जाए, तो abort() कॉल करें, ताकि अंदर चल रहा कार्य जल्दी रुक जाए।

// Combine: abort if timeout fires
async function fetchWithTimeout(msWork, msTimeout) {
  const c = new AbortController();

  const task = fakeFetch(msWork, "data", c.signal);

  // If timeout wins, abort the task
  try {
    const result = await withTimeout(task, msTimeout);
    return result;
  } catch (e) {
    c.abort();
    throw e;
  }
}

fetchWithTimeout(25, 10)
  .then(function (v) { console.log("got:", v); })
  .catch(function (e) { console.log("failed:", e.message); });
टाइमआउट और AbortController से रद्द करना — चित्र 5

सुझाव और जाँच-सूची

सुझाव:

  • टाइमर को हमेशा finally में साफ़ करें।
  • टास्क में सिग्नल पास करें और signal.aborted की जाँच करें।
  • हर अनुरोध के लिए एक controller रखना बेहतर है।
टाइमआउट और AbortController से रद्द करना — चित्र 6

AbortController की मूल बातें—प्रश्नोत्तरी

त्वरित जाँच: रद्द करने का पैटर्न।

टाइमआउट और AbortController से रद्द करना — चित्र 7

पुनरावलोकन

पुनरावलोकन: आपने सिग्नल के अनुसार काम करने वाला कार्य बनाया, उसे AbortController से रद्द किया, Promise.race के ज़रिए समय-सीमा जोड़ी और सुरक्षित शुरुआती निकासों के लिए दोनों को मिलाया।

टाइमआउट और AbortController से रद्द करना — चित्र 8
शुरुआत निःशुल्क

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

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

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

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

क्या “टाइमआउट और AbortController से रद्द करना” पाठ निःशुल्क है?

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

“टाइमआउट और AbortController से रद्द करना” में मैं क्या सीखूँगा?

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

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

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

“टाइमआउट और AbortController से रद्द करना” पाठ पूरा करने में कितना समय लगता है?

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

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

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

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

  1. async फ़ंक्शन लिखना; try/catch; समानांतर बनाम क्रमिक निष्पादन
  2. टाइमआउट और AbortController से रद्द करना
  3. पुनः प्रयास और बैकऑफ़ के तरीके
← JavaScript Academy पर वापस जाएँ