小编i-b*_*lis的帖子

如何通过 Node.js 中的流管道等待异步值?

[免责声明:这是我对 Node 的第一次尝试(我主要是一个 Clojure 人)]

我正在使用node-csv解析和转换 CSV 文件。转换发生在线路上的 IO 上,我用 async/await 构造包装了回调。

const in_stream  = fs.createReadStream('test-data')
const out_stream = fs.createWriteStream('test-output')

const parse = csv.parse({ delimiter: "\t", quote: false })

const transform = csv.transform(async (row) => {
    await translate(row[1], { from: 'en', to: 'fr' })
        .then(res => { row[1] = res.text})
    console.log(row) // this shows that I succesfully wait for and get the values
    return row
})

const stringify = csv.stringify({
    delimiter: ';',
    quoted: true 
})

in_stream.pipe(parse).pipe(transform).pipe(stringify).pipe(out_stream)
Run Code Online (Sandbox Code Playgroud)

看起来流在值从转换器中输出之前就结束了。

你如何处理 …

javascript stream node.js async-await

2
推荐指数
1
解决办法
913
查看次数

标签 统计

async-await ×1

javascript ×1

node.js ×1

stream ×1