← Cloudflare Workers / workers / runtime-apis / streams
WritableStream DefaultWriter
Kontext
Writer se používá, když chcete zapisovat přímo do WritableStream, a ne do něj přivádět data rourou z ReadableStream. Například:
function writeArrayToStream(array, writableStream) {
const writer = writableStream.getWriter();
array.forEach(chunk => writer.write(chunk).catch(() => {}));
return writer.close();
}
writeArrayToStream([1, 2, 3, 4, 5], writableStream)
.then(() => console.log('All done!'))
.catch(e => console.error('Error with the stream: ' + e));Vlastnosti
-
writer.desiredSizeint- Velikost potřebná k naplnění interní fronty streamu, jako celé číslo. Vždy vrací 1, 0 (pokud je stream uzavřený), nebo
null(pokud stream obsahuje chyby).
- Velikost potřebná k naplnění interní fronty streamu, jako celé číslo. Vždy vrací 1, 0 (pokud je stream uzavřený), nebo
-
writer.closedPromise<void>- Promise, který indikuje, zda je writer uzavřený. Promise se splní, jakmile se stream writeru uzavře, a zamítne se, pokud ve streamu dojde k chybě.
Metody
-
abort(reasonstringoptional): Promise<void>- Přeruší stream. Tato metoda vrací promise, který se naplní odpovědí
undefined.reasonje volitelný, člověku srozumitelný řetězec udávající důvod zrušení.reasonse předá do algoritmu abort podkladového sinku. Pokud je tento zapisovatelný stream jednou stranou TransformStream, pak jeho abort algoritmus způsobí, že se čtecí strana transformace dostane do chybového stavu sreason.
- Přeruší stream. Tato metoda vrací promise, který se naplní odpovědí
-
close(): Promise<void>- Pokusí se zavřít writer. Než se writer zavře, dokončí se zpracování zbývajících zápisů. Tato metoda vrací promise splněný hodnotou
undefinedpokud zapisovač úspěšně zavře a zpracuje zbývající zápisy, nebo zamítnutý při jakékoli chybě.
- Pokusí se zavřít writer. Než se writer zavře, dokončí se zpracování zbývajících zápisů. Tato metoda vrací promise splněný hodnotou
-
releaseLock(): void- Uvolní zámek writeru na streamu. Jakmile je zámek uvolněn, writer už není aktivní. Tuto metodu můžete volat ještě před tím, než budou vyřízeny všechny čekající
write(chunk)volání se vyřeší. To umožňuje zařadit do frontywriteoperaci, uvolněte zámek a začněte zapisovat do writable streamu z jiného zdroje, jak ukazuje příklad níže.
- Uvolní zámek writeru na streamu. Jakmile je zámek uvolněn, writer už není aktivní. Tuto metodu můžete volat ještě před tím, než budou vyřízeny všechny čekající
let writer = writable.getWriter();
// Write a preamble.
writer.write(new TextEncoder().encode('foo bar'));
// While that’s still writing, pipe the rest of the body from somewhere else.
writer.releaseLock();
await someResponse.body.pipeTo(writable);-
write(chunkany): Promise<void>- Zapíše část dat do zapisovače a vrátí Promise, který se vyřeší, pokud operace uspěje.
- Podkladový stream může akceptovat méně typů než
any, vyvolá výjimku, pokud narazí na neočekávaný typ.