我想将文件的夹头合并到另一个文件,但writeStream在不将readStream内容写入或附加到输出文件的情况下关闭。
我有一个async带有 for-of 循环的函数,它遍历数组,在循环内我创建了一个writableStream带标志 write truncate/write wflag if it iteration index is 0 else append wthen create a readStreamthen pipe it into writeStream.
async function mergeBlocks(op) {
for (const [index, block] of op.blockObjects.entries()) {
const flags = index === 0? 'w' : 'a'
const w = createWriteStream(op.output, { start: block.start, flags }),
r = createReadStream(block.path, { start: block.start, end: block.end })
console.log(index)
r.pipe(w)
await new Promise(res =>
w.on('finish', () => {
console.log('close')
res()
})
)
}
}
但它只写入第一个块并关闭writeStream而不写入输出文件的每个其他迭代。请问我做错了什么?
编辑检查下面的答案。
浮云间
相关分类