我正在尝试从 csv 文件中提取像 {Name:Value, Name2:Value2,...} 这样的字典数据,如下所示
<metadata>
<metadata>
<metadata>
<metadata>
ID,1,2,3,4,5,6,...
Name,ABC,BCD,CDE,DEF,EFG,FGH,...
Val,123,234,345,456,567,678,...
使用下面的功能
async function getMap(file) {
rv = {};
fs.createReadStream(file)
.pipe(csv.parse({from_line: 5, to_line:7, columns: true, bom: true}, (err, data) => {
for(i=1;i<=200;i++) {
rv[data[0][i]] = data[1][i];
}
}));
return rv;
}
我认为这会返回如下内容:
{'ABC':123,'BCD':234,...}
但是空值是返回的。我确定这与范围有关(如果这是正确的词),但还无法弄清楚。
==============================
最初我认为这是与范围有关的事情,但我更多地研究了结果,它更多的是我不了解的异步问题。这怎么能等待 readStream 处理到文件末尾,使用 await、promise、resolve 等。