تكرار السؤال: …
الإجابة المختصرة
يتم تمديد فئة Transform وتنفيذ دالة _transform(chunk, encoding, callback) لتعديل البيانات وتمريرها للمرحلة التالية عبر this.push(data).
الشرح
فئة Transform من وحدة node:stream تمثل كائناً يقبل مدخلات كـ Writable ويخرج بيانات معدلة كـ Readable. داخل _transform تقوم بالمعالجة وتدفع النتيجة عبر this.push() ثم تستدعي callback().
مثال بالكود
class MyTransform extends Transform {
_transform(chunk, enc, cb) {
this.push(chunk.toString().toUpperCase());
cb();
}
}أخطاء شائعة
- نسيان استدعاء callback() في نهاية _transform مما يؤدي لتوقف وتجمد التدفق.
أسئلة متابعة
- ما هي الأنواع الأربعة للـ Streams في Node.js وما وظيفة كل منها؟
- ما هي ظاهرة الـ Backpressure في Node.js Streams وكيف تتم معالجتها هندسياً؟