Lesbare strømmer
Les data del for del.
Lesbare strømmer er en gratis leksjon i JavaScript Academy på CoddyKit. Dette er leksjon 1 av 4. Du kan lese valgfritt 3 leksjoner fra denne læringsstien gratis i sin helhet – deretter låser CoddyKit PRO opp alle leksjoner, samt praktisk øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i JavaScript Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i JavaScript Academy inneholder totalt 4 leksjoner.
Hva er strømmer?
Streams API behandler data trinnvis etter hvert som chunks kommer inn, i stedet for å laste alt inn i minnet. Dette gjør det mulig å håndtere enorme nedlastinger, video og direkte datastrømmer effektivt.
ReadableStream
En ReadableStream er en kilde som leses fra chunk for chunk. Nettlesere tilbyr slike strømmer i fetch-responser, filblobber og mer.
Opprette en strøm
Opprett en ved hjelp av et underliggende kildeobjekt der start(controller) legger chunks i kø og signaliserer at behandlingen er fullført.
const stream = new ReadableStream({
start(controller) {
controller.enqueue("chunk 1");
controller.enqueue("chunk 2");
controller.close();
}
});Hente en leser
getReader() låser strømmen og returnerer en leser. Så lenge strømmen er låst, kan ingen annen forbruker lese fra den.
const reader = stream.getReader();Lese chunks
reader.read() returnerer et promise som løses til { value, done }. done blir true når strømmen er tom.
const { value, done } = await reader.read();
console.log(value, done);Leseløkken
Kall read() i en løkke til done er true for å lese hele strømmen.
const reader = stream.getReader();
while (true) {
const { value, done } = await reader.read();
if (done) break;
console.log("got", value);
}Frigi låsen
Kall reader.releaseLock() for å låse opp strømmen, slik at en annen leser kan overta.
reader.releaseLock();pull-metoden
En underliggende kilde kan definere pull(controller), som kalles når forbrukeren ønsker mer data – og dermed muliggjør lat, behovsstyrt generering.
let i = 0;
new ReadableStream({
pull(controller) {
controller.enqueue(i++);
if (i > 5) controller.close();
}
});Asynkron iterasjon
I moderne miljøer kan en ReadableStream itereres asynkront, slik at du kan bruke for await...of i stedet for en manuell løkke.
for await (const chunk of stream) {
console.log(chunk);
}Avbryte en strøm
reader.cancel(reason) stopper strømmen tidlig og frigjør ressurser – noe som er viktig ved avbrytelse av store nedlastinger.
await reader.cancel("user navigated away");Tee: Dele en strøm
tee() returnerer to strømmer som hver mottar en kopi av alle chunks – nyttig når data skal leses to ganger, for eksempel for hurtigbufring og visning.
const [a, b] = stream.tee();
// read a and b independentlyKort kontroll
Test lesbare strømmer.
Oppsummering: Lesbare strømmer
Det ble opprettet en ReadableStream, en leser ble hentet, chunks ble lest med read() i en løkke, låsen ble frigitt, pull ble brukt for behovsstyrte data, strømmene ble iterert med for await, og en strøm ble delt med tee(). Neste tema er strømming av fetch-responser.
Lær deg JavaScript med en AI-veileder – gratis
Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.
- Kurs
- 59
- Leksjoner
- 200
Ofte stilte spørsmål
Er leksjonen «Lesbare strømmer» gratis?
Ja – du kan lese valgfritt 3 av leksjonene i læringsstien JavaScript Academy, inkludert «Lesbare strømmer», gratis i sin helhet her på nettet. Deretter låser CoddyKit PRO opp alle leksjoner, samt interaktiv øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Kurset i JavaScript Academy inneholder totalt 4 leksjoner.
Hva lærer jeg i «Lesbare strømmer»?
Les data del for del. Du øver på JavaScript Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.
Trenger jeg erfaring for å begynne med JavaScript Academy?
Ingen tidligere erfaring er nødvendig. JavaScript Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 1 av 4.
Hvor lang tid tar leksjonen «Lesbare strømmer»?
De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.
Kan jeg skrive og kjøre kode i denne JavaScript Academy-leksjonen?
Ja. Alle JavaScript Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.