从异步迭代器管道传输到可写流


\Piping to writable streams from async iterators

从异步迭代器写入可写流时,确保正确处理背压和错误。stream.pipeline() 抽象了背压和背压相关错误的处理:

\When writing to a writable stream from an async iterator, ensure correct handling of backpressure and errors. stream.pipeline() abstracts away the handling of backpressure and backpressure-related errors:

const fs = require('node:fs');
const { pipeline } = require('node:stream');
const { pipeline: pipelinePromise } = require('node:stream/promises');
const writable = fs.createWriteStream('./file');
const ac = new AbortController();
const signal = ac.signal;
const iterator = createIterator({ signal });
// Callback Pattern
pipeline(iterator, writable, (err, value) => {
 if (err) {
 console.error(err);
 } else {
 console.log(value, 'value returned');
 }
}).on('close', () => {
 ac.abort();
});
// Promise Pattern
pipelinePromise(iterator, writable)
 .then((value) => {
 console.log(value, 'value returned');
 })
 .catch((err) => {
 console.error(err);
 ac.abort();
 }); 

AltStyle によって変換されたページ (->オリジナル) /