【发布时间】:2022-01-09 13:21:45
【问题描述】:
在创建流 (A)、创建另一个流 (B) 并读取流 (B) 之后,读取过程从流 (A) 停止。 我该如何解决这个问题?
Node.js v14.18.1
import * as readline from 'readline';
import { Readable } from 'stream';
async function main() {
const streamA = Readable.from('a');
const readerA = readline.createInterface({
input: streamA,
crlfDelay: Infinity
});
var stopCase = false;
if (stopCase) {
const streamB = Readable.from('b');
const readerB = readline.createInterface({
input: streamB,
crlfDelay: Infinity
});
console.log('readB');
for await (const line of readerB) {
console.log(line);
}
}
console.log(`readerA.closed = ${'closed' in readerA}`);
console.log('readA');
for await (const line of readerA) {
console.log(line);
}
console.log('success');
}
main();
输出(stopCase=true):
readB
b
readerA.closed = true
readA
输出(stopCase=false):
readerA.closed = false
readA
a
success
【问题讨论】:
-
我做了以下更改,但输出没有改变。
console.log(`readerA.closed = ${'closed' in readerA && (readerA as any).closed}`);这是一个TypeScript代码。
标签: node.js string stream readable