【发布时间】:2013-07-09 10:02:01
【问题描述】:
我正在用 node.js 和请求模块编写一个下载器。使用我正在做的流语法
var r = request(url).pipe(fs.createWriteStream(targetPath));
r.on('error', function(err) { console.log(err); });
r.on('finish', cb);
下载文件,保存并调用回调。但是,在几乎 50% 的情况下,文件要么是空的,要么根本没有创建。不会发出 error 事件。即使文件尚未(完全)写入,似乎也触发了 finish 事件。
上下文:整个过程都包含在async.each 调用中。
有什么线索吗?谢谢!
【问题讨论】:
-
尝试通过添加
.on('data'侦听器进行调试,看看您是否一直在接收数据,但只是没有将数据写入磁盘。
标签: javascript node.js asynchronous download request