Использую вот такой код. Из масиива arr берутся ссылки на фотографии и скачиваются.
После 5-30 успешных скачиваний процесс тормозится на http запросе, коллбек просто не исполняется, ни ошибок ничего не приходит.
Подскажите пожалуйста в чем дело.
const fs = require('fs');
const request = require('request');
let arr = [];
let counter = 0;
saveFile()
function saveFile(){
console.log("");
console.log(arr.length - counter, counter, "Начал качать: ", arr[counter].from);
console.log("to", arr[counter].to)
request({ // Вот на этом моменте тормозится процесс
url: arr[counter].from,
method: 'GET',
encoding: "binary"
}, (err, req, res)=>{
console.log("Скачал ")
if(err){
console.log("НЕ удалось скачать фаил", arr[counter].from);
return saveFile();
}
fs.writeFile(arr[counter].to, res, 'binary', (err)=>{
if(err) throw err;
console.log("Сохранил ")
counter++;
setTimeout(saveFile, 1000);
});
});
}
Пробывал также потоками, тоже самое
function saveFile(){
let stream = fs.createWriteStream(arr[counter].to)
let readStream = request.get(arr[counter].from)
.pipe(stream)
console.log("");
console.log(arr.length - counter, counter, "Начал качать: ", arr[counter].from);
console.log("to", arr[counter].to)
stream.on('finish', () => {
console.log("Скачал ")
counter++;
setTimeout(saveFile, 1000);
});
}