回调处理管道完成

我正在使用以下node.js代码从某些url下载文档并将其保存在磁盘中。我想知道何时下载该文档。我没有看到使用pipe进行任何回调。或者,下载完成后是否可以捕获任何“结束”事件?


request(some_url_doc).pipe(fs.createWriteStream('xyz.doc'));


智慧大石
浏览 716回答 3
3回答

沧海一幻觉

流是,EventEmitter因此您可以听某些事件。如您所说,有一个finish请求事件(以前是end)。 var stream = request(...).pipe(...); stream.on('finish', function () { ... });有关可用的事件的更多信息,请查看流文档页面。

GCT1015

用于将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);});
打开App,查看更多内容
随时随地看视频慕课网APP