【发布时间】:2015-09-10 08:42:33
【问题描述】:
我有一个 nodejs 程序从服务器下载一堆文件。问题是在文件实际下载之前进程退出,所以我得到一个损坏的文件。
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 但没有成功...
-
您是否尝试过我在回答中提供的代码?