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.