gpt4 book ai didi

node.js - Node 进程在 writeStream 结束前退出

转载 作者:可可西里 更新时间:2023-11-01 17:35:28 25 4
gpt4 key购买 nike

我有一个 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);
});
}

但是当最后一个请求收到响应时,进程退出。我从来没有得到“完成”日志。

有人有想法吗?

谢谢!

最佳答案

您没有正确处理异步性。

尝试使用名为 async 的库并像这样使用它

async.eachSeries(items, function (item, callback) {
var file = fs.createWriteStream(item.filename);
var request = http.get(item.url, function (response) {
response.pipe(file);
});
request.on('end', function () {
console.log('done with ' + filePath);
callback(null);
});
}, function (err) {
console.log('All done!');
});

关于node.js - Node 进程在 writeStream 结束前退出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32497063/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com