等待流完全更新变量
Posted
技术标签:
【中文标题】等待流完全更新变量【英文标题】:Wait for streams to completely update a variable 【发布时间】:2020-11-29 22:28:52 【问题描述】:我正在尝试从多个流中获取一些数据,并将它们附加到特定变量。代码如下。
const fs = require('fs');
data = [];
chunks = "stream1": "start": "10", "end": "20", "stream2": "start": "20", "end": "30";
for(let key in chunks)
var stream = fs.createReadStream('file.txt', start: parseInt(chunks[key].start), end: parseInt(chunks[key].end));
stream.on('data', function(chunk)
data.push(chunk.toString());
console.log(data);
但是,数据输出的是一个空数组[]
。有人请帮助我,获取data
变量中的数据然后显示它,而不是在那之前。
我想创建一个在数组长度达到特定数字时发出的事件,但它看起来很奇怪。
【问题讨论】:
您需要等待流完成***.com/a/33599789/9715163 我看过了,但没有帮助。 【参考方案1】:结合How to use ES8 async/await with streams? 和一点“现代化”,你会想要这样的东西。
async function getData()
const out = [];
const chunks = stream1: start: '10', end: '20' , stream2: start: '20', end: '30' ;
for (const key in chunks)
for await (const chunk of fs.createReadStream('file.txt',
start: parseInt(chunks[key].start),
end: parseInt(chunks[key].end),
))
out.push(chunk.toString());
return out;
【讨论】:
以上是关于等待流完全更新变量的主要内容,如果未能解决你的问题,请参考以下文章