0Pricing
JavaScript Academy · Ders

Geri Basınç ve Borulama

pipeTo ve pipeThrough ile akış denetimini yönetin.

Geri Basınç ve Borulama, CoddyKit'te ücretsiz bir JavaScript Academy dersidir. Bu, 4 dersinin 4. 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.

Geri Basınç Sorunu

Bir üretici, tüketicinin işleyebileceğinden daha hızlı veri üretirse bellek dolar. Geri basınç, yavaş bir tüketicinin hızlı bir üreticiye yavaşlamasını bildirmesini sağlayan mekanizmadır.

WritableStream

WritableStream, parçaları içine yazdığınız bir hedeftir. Bu akışın write(chunk) sink yöntemi zaman uyumsuz olabilir ve bir sonraki parçaya hazır olduğunu bildirebilir.

const sink = new WritableStream({
  write(chunk) {
    console.log("writing", chunk);
  }
});

writer Edinme

getWriter(), yazılabilir akışı kilitler ve write(), close() ile ready promise'ine sahip bir writer döndürür.

const writer = sink.getWriter();
await writer.write("hello");
await writer.close();

ready Sinyali

Yazmadan önce writer.ready için bekleyin. Akış daha fazla veriyi kabul edebildiğinde çözümlenir; bu, geri basıncın işleyişidir.

await writer.ready;
await writer.write(chunk);

pipeTo

readable.pipeTo(writable), bir kaynağı hedefe bağlar ve geri basıncı sizin için otomatik olarak yönetir. Akış aktarımı tamamlandığında çözümlenen bir söz döndürür.

await readableStream.pipeTo(writableStream);
console.log("done piping");

pipeThrough

pipeThrough(transform), kaynak ile sink arasına bir dönüşüm ekler ve dönüştürülmüş okunabilir akışı döndürür. Birkaçını zincirleyerek işlem hattı oluşturabilirsiniz.

sourceStream
  .pipeThrough(new TextDecoderStream())
  .pipeThrough(parser)
  .pipeTo(consumer);

Yüksek Su Sınırları

Bir kuyruklama stratejisinin highWaterMark değeri, geri basınç devreye girmeden önce kaç parçanın kuyruğa alınabileceğini belirler. Aktarım hızı ile bellek kullanımı arasında denge kurmak için bu değeri ayarlayın.

new ReadableStream(source, new CountQueuingStrategy({ highWaterMark: 4 }));

desiredSize

Bir denetleyicinin desiredSize değeri, üreticiye kuyrukta ne kadar yer kaldığını bildirir. Sıfıra veya daha düşük bir değere ulaştığında parça kuyruğa eklemeyi durdurun.

pull(controller) {
  while (controller.desiredSize > 0) {
    controller.enqueue(nextChunk());
  }
}

Akış Aktarımını İptal Etme

Bir AbortController ile tüm işlem hattını iptal etmek için { signal } değerini pipeTo'ya geçirin.

const ctrl = new AbortController();
readable.pipeTo(writable, { signal: ctrl.signal });
ctrl.abort();

Akış Aktarımı Seçenekleri

pipeTo, hataların ve tamamlanma durumunun uçlar arasında nasıl yayılacağını denetlemek için preventClose, preventAbort ve preventCancel seçeneklerini kabul eder.

readable.pipeTo(writable, { preventClose: true });

Tam İşlem Hattı

Her şeyi bir araya getirin: baytları alın, kodlarını çözün, dönüştürün ve otomatik akış denetimiyle bir sink'e yazın.

const res = await fetch("/data");
await res.body
  .pipeThrough(new TextDecoderStream())
  .pipeThrough(lineSplitter)
  .pipeTo(uiSink);

Hızlı Kontrol

Geri basıncı sınayın.

Özet: Geri Basınç ve Akış Aktarımı

WritableStream ve writer'larla tanıştınız, geri basınç için ready değerini beklediniz, akışları pipeTo/pipeThrough ile bağladınız, highWaterMark değerini ayarlayıp desiredSize değerini izlediniz ve işlem hatlarını iptal ettiniz. Streams API'si böylece tamamlanıyor.

Sıkça Sorulan Sorular

“Geri Basınç ve Borulama” dersi ücretsiz mi?

Evet — “Geri Basınç ve Borulama” 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.

“Geri Basınç ve Borulama” dersinde ne öğreneceğim?

pipeTo ve pipeThrough ile akış denetimini yönetin. 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 4. dersidir.

“Geri Basınç ve Borulama” 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