ITMISS
2022-01-01 21:10:39
我希望你們都做得很好。我在 Node Js 中遇到了流問題,我想請求您的幫助:我正在閱讀一個文件: const readStream = fs.createReadStream('./veryBigFile');我將輸出通過管道發(fā)送到一個 POST 請求,如下所示:readStream.pipe(post_req);但是,我想在一定超時后停止讀取文件,并停止 POST 請求。我嘗試了 readStream.close() 和 readStream.destroy() 但它們不起作用(我將一個“結(jié)束”偵聽器附加到 readStream,它在超時后不會被觸發(fā))。有任何想法嗎 ?
1 回答

慕桂英4014372
TA貢獻(xiàn)1871條經(jīng)驗 獲得超13個贊
在您對 kirill Groshkov 發(fā)表評論后,我決定再次查看我的代碼,我了解如何使其工作!
在觸發(fā)銷毀事件(使用 readStream.destroy())之后,發(fā)出的是“錯誤”事件,而不是我正在收聽的“結(jié)束”事件。
所以我仍然必須使用 readStream.destroy('YOUR CUSTOM ERROR MESSAGE') 在超時后停止讀取文件。
然后我聽了這個自定義錯誤:
readStream.on('error', e => {
if (e === 'YOUR CUSTOM ERROR MESSAGE') {
post_req.abort(); //To cancel request
// etc.
} else {
reject(`An error occured while uploading data: ${e}`);
}
});
添加回答
舉報
0/150
提交
取消