为了账号安全,请及时绑定邮箱和手机立即绑定

回调处理管道完成

回调处理管道完成

智慧大石 2019-11-11 15:51:53
我正在使用以下node.js代码从某些url下载文档并将其保存在磁盘中。我想知道何时下载该文档。我没有看到使用pipe进行任何回调。或者,下载完成后是否可以捕获任何“结束”事件?request(some_url_doc).pipe(fs.createWriteStream('xyz.doc'));
查看完整描述

3 回答

?
沧海一幻觉

TA贡献1824条经验 获得超5个赞

流是,EventEmitter因此您可以听某些事件。如您所说,有一个finish请求事件(以前是end)。


 var stream = request(...).pipe(...);

 stream.on('finish', function () { ... });

有关可用的事件的更多信息,请查看流文档页面。


查看完整回答
反对 回复 2019-11-11
?
GCT1015

TA贡献1827条经验 获得超4个赞

用于将Web内容通过http(s)传递到文件系统的代码段。由于@starbeamrainbowlabs注意到事件finish确实起作用


var tmpFile = "/tmp/somefilename.doc";


var ws = fs.createWriteStream(tmpFile);

ws.on('finish', function() {

  // pipe done here, do something with file

});


var client = url.slice(0, 5) === 'https' ? https : http;

client.get(url, function(response) {

  return response.pipe(ws);

});


查看完整回答
反对 回复 2019-11-11
  • 3 回答
  • 0 关注
  • 807 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信