JavaScript Academy · पाठ

रूपांतरण स्ट्रीम

पाइपलाइन में बहते समय डेटा को बदलिए।

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

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

TransformStream क्या है

TransformStream रीडेबल और राइटेबल पक्ष के बीच स्थित होती है। इसमें लिखे गए चंक्स बदले जाते हैं और बाहर जारी किए जाते हैं — यह पाइप का ऐसा चरण है जो डेटा को चलते-चलते मैप, फ़िल्टर या नए रूप में व्यवस्थित करता है।

संरचना

इसके दो सिरे होते हैं: writable (जहाँ डेटा अंदर जाता है) और readable (जहाँ बदला हुआ डेटा बाहर आता है)।

const ts = new TransformStream();
console.log(ts.writable, ts.readable);

transform विधि

transform(chunk, controller) फ़ंक्शन से व्यवहार परिभाषित करें। आउटपुट जारी करने के लिए controller.enqueue() बुलाएँ।

const upper = new TransformStream({
  transform(chunk, controller) {
    controller.enqueue(chunk.toUpperCase());
  }
});

एक अंदर, कई बाहर

कोई ट्रांसफ़ॉर्म प्रत्येक इनपुट के लिए शून्य, एक या कई चंक्स जारी कर सकता है — डेटा को विभाजित या विस्तृत करने के लिए बिल्कुल उपयुक्त।

const splitter = new TransformStream({
  transform(line, controller) {
    for (const word of line.split(" ")) controller.enqueue(word);
  }
});

ट्रांसफ़ॉर्म से फ़िल्टर करना

जिन चंक्स को हटाना है, उन्हें बस कतार में न रखें।

const onlyEven = new TransformStream({
  transform(n, controller) {
    if (n % 2 === 0) controller.enqueue(n);
  }
});

flush विधि

flush(controller) इनपुट समाप्त होने पर एक बार चलती है — बफ़र में बचे डेटा या अंतिम चंक को जारी करने के लिए आदर्श।

const ts = new TransformStream({
  transform(c, ctrl) { ctrl.enqueue(c); },
  flush(ctrl) { ctrl.enqueue("[END]"); }
});

चंक्स के बीच बफ़र करना

आंशिक चंक्स को जोड़ने के लिए क्लोज़र में स्थिति रखें, जैसे मनमानी बाइट सीमाओं से पूरी पंक्तियाँ बनाना।

let buffer = "";
new TransformStream({
  transform(chunk, ctrl) {
    buffer += chunk;
    const parts = buffer.split("\n");
    buffer = parts.pop();
    for (const line of parts) ctrl.enqueue(line);
  },
  flush(ctrl) { if (buffer) ctrl.enqueue(buffer); }
});

पहले से उपलब्ध ट्रांसफ़ॉर्म स्ट्रीम

प्लैटफ़ॉर्म TextDecoderStream, TextEncoderStream और CompressionStream/DecompressionStream उपलब्ध कराता है — ये पहले से तैयार ट्रांसफ़ॉर्म हैं।

const gzip = new CompressionStream("gzip");
const compressed = inputStream.pipeThrough(gzip);

pipeThrough से जोड़ना

readable.pipeThrough(transform) किसी स्रोत को ट्रांसफ़ॉर्म से जोड़ता है और ट्रांसफ़ॉर्म का रीडेबल आउटपुट लौटाता है, जो अगले चरण के लिए तैयार होता है।

const out = sourceStream
  .pipeThrough(new TextDecoderStream())
  .pipeThrough(upper);

असिंक्रोनस ट्रांसफ़ॉर्म

transform असिंक्रोनस हो सकता है — प्रत्येक चंक पर एपीआई कॉल करने या असिंक्रोनस कार्य करने के लिए इसके अंदर await करें। स्ट्रीम प्रॉमिस पूरा होने तक प्रतीक्षा करती है।

new TransformStream({
  async transform(chunk, ctrl) {
    const result = await process(chunk);
    ctrl.enqueue(result);
  }
});

त्रुटि का प्रसार

transform के अंदर त्रुटि उत्पन्न करने पर स्ट्रीम में त्रुटि आ जाती है; डाउनस्ट्रीम उपभोक्ताओं को त्रुटि दिखाई देती है और पाइपलाइन बंद हो जाती है।

new TransformStream({
  transform(chunk, ctrl) {
    if (!valid(chunk)) throw new Error("bad chunk");
    ctrl.enqueue(chunk);
  }
});

त्वरित जाँच

रूपांतरण प्रवाहों की जाँच करें।

पुनरावलोकन: रूपांतरण प्रवाह

आपने transform और flush से रूपांतरण बनाए, खंडों का मानचित्रण, छनाई और विस्तार किया, खंडों की सीमाओं के पार डेटा को बफ़र किया, CompressionStream जैसे अंतर्निर्मित साधनों का उपयोग किया और pipeThrough से चरणों को जोड़ा। अगला विषय: पश्च-दबाव और प्रवाह-संयोजन।

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

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

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

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

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

क्या “रूपांतरण स्ट्रीम” पाठ निःशुल्क है?

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

“रूपांतरण स्ट्रीम” में मैं क्या सीखूँगा?

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

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

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

“रूपांतरण स्ट्रीम” पाठ पूरा करने में कितना समय लगता है?

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

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

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

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

  1. पठनीय स्ट्रीम
  2. स्ट्रीमिंग fetch प्रतिक्रियाएँ
  3. रूपांतरण स्ट्रीम
  4. बैकप्रेशर और पाइपिंग
← JavaScript Academy पर वापस जाएँ