أصبحت TransformStream الآن متوافقة مع جميع المتصفحات

وأصبحت أحداث البث التحويلية الآن جاهزة للاستخدام في Chrome وSafari وFirefox، وهي جاهزة أخيرًا.

دعم المتصفح

  • Chrome: 67.
  • الحافة: 79.
  • Firefox: 102.
  • Safari: الإصدار 14.1.

المصدر

تتيح لك Streams API تقسيم مورد تريد استلامه أو إرساله أو تحويله إلى أجزاء صغيرة، ثم معالجة هذه الأجزاء قليلاً. مؤخرًا، Firefox 102 بدأ في إتاحة استخدام "TransformStream" مما يعني أن TransformStream أصبحت الآن قابلة للاستخدام أخيرًا عبر المتصفحات. يسمح لك تحويل البث بالتدفق من ReadableStream إلى WritableStream، يتم تنفيذ يتم تحويله على الأجزاء أو استهلاك النتيجة التي تم تحويلها بشكل مباشر، كما هو موضح في المثال التالي.

class UpperCaseTransformStream {
  constructor() {
    return new TransformStream({
      transform(chunk, controller) {
        controller.enqueue(chunk.toUpperCase());
      },
    });
  }
}

button.addEventListener('click', async () => {
  const response = await fetch('/script.js');
  const readableStream = response.body
    .pipeThrough(new TextDecoderStream())
    .pipeThrough(new UpperCaseTransformStream());

  const reader = readableStream.getReader();
  pre.textContent = '';
  while (true) {
      const { done, value } = await reader.read();
      if (done) {
        break;
      }
      pre.textContent += value;
  }
});

عرض توضيحي