我创建了一个可读的流正确,但是,在上传该流后,它失去了流内的数据
const readable: Readable = await createCsv(csv)
console.log('step 1', readable.read()) // <---- the data is there
// uploadfile csv to FTP server
await this.ftp.uploadCSV(readable, pathway)
console.log('step 2', readable.read()) // <---- the data is not there
// return csv file to Front End
// FIXME: this shouldn't be done again
const r2: Readable = await createCsv(csv) // <--- have to create readable again to send back data
return { readable: r2 }
如果this.ftp.uploadCSV()
返回稍后在函数中返回的流,问题也是一样的。所以问题是我怎样才能把可读的流发送给类的另一个方法,并返回同样的可读数据,而不必像上面的代码那样生成另一个流
1条答案
按热度按时间oug3syen1#
uploadCSV
方法消耗readable
流中的数据,导致其变为空。要避免这种情况,您应该克隆流。关于Stack Overflow上的流克隆存在多个问题,其中一个示例为here