我有一个nodejs程序从服务器下载一堆文件。问题是该过程在文件实际下载之前退出,所以我得到一个损坏的文件。writeStream结束之前的节点进程退出
for(var i = 0; i < items.length; i++){
var file = fs.createWriteStream(items[i].filename);
var request = http.get(items[i].url, function (response) {
console.log('got:', i);
response.pipe(file);
});
request.on('end', function() {
console.log('done with ' + filePath);
});
}
但是,当最后一个请求收到其响应时,进程退出。我从来没有得到“完成”日志。
任何人有想法?
谢谢!
这是因为你的代码的异步的。基本上,在回调被触发之前,你已经退出循环。 –
我知道,我尝试了es6-promise和sync-request但没有成功... – hugohil
您是否尝试过我在答案中提供的代码? –