18

我正在尝试使用请求模块保存图像下载。有了这个

request('http://google.com/images/logos/ps_logo2.png').pipe(fs.createWriteStream('doodle.png')); 

它工作正常。但是我希望在图像完全下载后能够做其他事情。如何为 fs.createWriteStream 提供回调函数?

4

2 回答 2

49

您想提前创建流,然后在关闭事件上做一些事情。

var picStream = fs.createWriteStream('doodle.png');
picStream.on('close', function() {
  console.log('file done');
});
request('http://google.com/images/logos/ps_logo2.png').pipe(picStream); 

这应该这样做。

于 2012-09-16T17:08:49.433 回答
0

出现此错误的人必须尝试在 fs.createWriteStream(1,2) 方法的第二个输入参数处添加一个函数,如下例所示,这也适用于 fs.unlink 方法。请注意,添加的这个新函数什么都不返回,但它是必需的,如果需要,你也可以添加一些东西来返回,而不是在我的情况下。

request('http://google.com/images/logos/ps_logo2.png').pipe(fs.createWriteStream('doodle.png'), function(err){});
于 2020-01-24T01:25:54.543 回答