0Pricing
JavaScript Academy · Ders

Dönüştürme Akışları

Verileri bir işlem hattından akarken değiştirin.

Dönüştürme Akışları, CoddyKit'te ücretsiz bir JavaScript Academy dersidir. Bu, 4 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, JavaScript Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. JavaScript Academy kursu toplamda 4 dersten oluşur.

TransformStream nedir

Bir TransformStream, okunabilir ve yazılabilir taraflar arasında yer alır. İçeriye yazılan parçalar dönüştürülür ve dışarıya gönderilir; bu, verileri anında eşleyen, filtreleyen veya yeniden şekillendiren bir işlem aşamasıdır.

Yapısı

İki ucu vardır: verilerin girdiği writable ve dönüştürülen verilerin çıktığı readable.

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

Dönüştürme yöntemi

Davranışı transform(chunk, controller) işleviyle tanımlayın. Çıktı göndermek için controller.enqueue() çağırın.

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

Bir girdi, çok sayıda çıktı

Bir dönüştürme işlemi her girdi için sıfır, bir veya birkaç parça gönderebilir. Bu özellik, verileri bölmek veya genişletmek için idealdir.

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

Dönüştürmelerle filtreleme

Bırakmak istediğiniz parçaları sıraya almayın.

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

Tampon boşaltma yöntemi

flush(controller), girdi sona erdiğinde bir kez çalışır. Bu, ara bellekte kalanları veya son bir parçayı göndermek için idealdir.

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

Parçalar arasında ara belleğe alma

Herhangi bir bayt sınırında bölünmüş parçalardan tam satırlar oluşturmak gibi, parçalı verileri birleştirmek için durumu kapatma içinde tutun.

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); }
});

Yerleşik dönüştürme akışları

Platform, kullanıma hazır dönüştürmeler olarak TextDecoderStream, TextEncoderStream ve CompressionStream/DecompressionStream sağlar.

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

pipeThrough ile bağlama

readable.pipeThrough(transform), bir kaynağı dönüştürmeye bağlar ve dönüştürmenin bir sonraki aşamaya hazır olan okunabilir çıktısını döndürür.

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

Asenkron dönüştürmeler

transform asenkron olabilir; API'leri çağırmak veya her parça üzerinde asenkron işlem yapmak için içinde await kullanabilirsiniz. Akış, sözün tamamlanmasını bekler.

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

Hata yayılımı

transform içinde hata fırlatmak akışı hatalı duruma getirir; alt akış tüketicileri hatayı görür ve işlem hattı kapatılır.

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

Hızlı Kontrol

Dönüştürme akışlarını sınayın.

Özet: Dönüştürme Akışları

transform ve flush ile dönüşümler oluşturdunuz, parçaları eşlediniz, filtrelediniz ve genişlettiniz, parça sınırları boyunca verileri arabelleğe aldınız, CompressionStream gibi yerleşik araçları kullandınız ve aşamaları pipeThrough ile bağladınız. Sırada geri basınç ve akış aktarımı var.

Sıkça Sorulan Sorular

“Dönüştürme Akışları” dersi ücretsiz mi?

Evet — “Dönüştürme Akışları” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve JavaScript Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. JavaScript Academy kursu toplamda 4 dersten oluşur.

“Dönüştürme Akışları” dersinde ne öğreneceğim?

Verileri bir işlem hattından akarken değiştirin. JavaScript Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

JavaScript Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te JavaScript Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 3. dersidir.

“Dönüştürme Akışları” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu JavaScript Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her JavaScript Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Okunabilir Akışlar
  2. fetch Yanıtlarını Akış Olarak İşleme
  3. Dönüştürme Akışları
  4. Geri Basınç ve Borulama
← JavaScript Academy Sayfasına Dön