Özet - Stream iç yapıları
- Node.js kursu
- Uzman
- Ders 30/47
- 5 dk
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
// streamReport fonksiyonu yaz
// dört bilgi dizesini ' | ' ile birleştirerek döndür
// çağır ve yazdır
// buraya yazÖrnek çözüm
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 |