CodeBlanks Logo Icon CodeBlanks

Özet - Stream iç yapıları

backpressure, highWaterMark ve pipeline'ı birleştirerek bir custom stream yazarsın.

Özet - Stream iç yapıları

Bu grupta stream'lerin iç yapılarını gördük: backpressure, highWaterMark, object mode, pipeline ve custom stream. Her biri Node.js'in veri akış mantığını şekillendirir.

Backpressure kuyruk eşiği geçilince üreticiyi duraklatır. highWaterMark buffer'ın üst sınırıdır; 'flowing' ve 'paused' durumlarını belirler. Object mode her parçayı nesne taşır; binary ise Buffer. stream.pipeline src, transform ve sink zincirini hata güvenliğiyle kurar. Custom stream, _read ve _write metodlarıyla özelleştirilmiş akıştır. Son derste tümünü bir rapor fonksiyonunda birleştireceğiz.

Rapor fonksiyonu

Son görev tüm stream kavramlarını tek bir raporda birleştirir. streamReport() fonksiyonu dört bilgi dizesini ' | ' ile ayırarak döndürür. Çıktı: backpressure: true | highWaterMark: 16 | object mode | pipeline: src -> sink.

Bu rapor, stream'lerin dört temel kavramını tek dizede özetler: geri basınç kararı (true), eşik (16), kip (object mode) ve zincir (src -> sink). Fonksiyon içinde her parçayı bir değişkene koyar, sonra + ile birleştirirsin. Bu, öğrendiklerini konsolda görmeni sağlar; gerçek stream'leri çalıştırmadan iç yapılarını modellemiş olursun.

Uygulama Stream raporu yaz

function streamReport() yaz. const bp = 'backpressure: true', const hwm = 'highWaterMark: 16', const mode = 'object mode' ve const pipe = 'pipeline: src -> sink' tanımla. return bp + ' | ' + hwm + ' | ' + mode + ' | ' + pipe ile döndür. console.log(streamReport()) ile yazdır.

Başlangıç kodu

index.js
// streamReport fonksiyonu yaz
// dört bilgi dizesini ' | ' ile birleştirerek döndür
// çağır ve yazdır
// buraya yaz

Örnek çözüm

index.js
function streamReport() {
  const bp = 'backpressure: true';
  const hwm = 'highWaterMark: 16';
  const mode = 'object mode';
  const pipe = 'pipeline: src -> sink';
  return bp + ' | ' + hwm + ' | ' + mode + ' | ' + pipe;
}
console.log(streamReport());

Beklenen çıktı

backpressure: true | highWaterMark: 16 | object mode | pipeline: src -> sink

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Hangisi backpressure'u tetikler?

  • queueSize >= highWaterMark Doğru cevap
  • queueSize < highWaterMark
  • currentSize === 0
  • mode === 'object'

Açıklama: queueSize >= highWaterMark backpressure'ı tetikler.

2 Kavramı rolüne eşle

Kavram Anlamı
backpressure Üreticiyi duraklatır
highWaterMark Buffer üst sınırı
object mode Nesne taşır
pipeline Zincir kurar

Uzman bölümündeki tüm dersler