Объяснение кода:
В первом .then () я получаю данные 10 изображений.Затем, используя для цикла , я перемещаюсь по каждому отдельному изображению.В следующей строке я создаю другой путь для сохранения изображения, следовательно, в $ {count}.
Теперь основная часть
Я использую axios , чтобы получить изображение, передав image.url ,В .then () я получаю ответ и отправляю его по заранее сгенерированному пути.
Разрешение при получении данных и увеличение счетчика для изменения значения.путь в следующей итерации.Отклонение при возникновении любой ошибки
Я делаю console.log (count ++) , чтобы проверить, перебираю ли я все 10 изображений и получаю ли я 1 2 ....Вывод 10 ', что означает, что все работает нормально.
Проблема: Согласно коду, 10image должны быть сохранены в папке images с именами 'image1, image2 ... image10' .Но я получаю только первое изображение.Что я делаю неправильно?Следует ли записывать материал на диск для циклов?
client.search('Steve Angello')
.then(images => {
let count = 1;
for(image of images){
const path1 = path.resolve(__dirname, 'images', `image ${count}.jpg`);
axios({
method: 'GET',
url: image.url,
responseType: 'stream'
})
.then((response) => {
response.data.pipe(fs.createWriteStream(path1));
return new Promise( (resolve, reject) => {
response.data.on('end', () => {
resolve();
console.log(count++);
})
response.data.on('error', (error) => {
reject(error);
})
})
})
.catch((err) => console.log(err));
}
});
Снимок вывода