const Fs = require('fs') const Path = require('path') const Axios = require('axios') var dir = './tmp'; async function downloadImage () { if (!Fs.existsSync(dir)){ Fs.mkdirSync(dir); } var arr = ['https://reaperscans.com/wp-content/uploads/WP-manga/data/manga_6295b8da2aa90/5461fc34b58cd174c806625056c6e0dc/01-copy.jpg','https://reaperscans.com/wp-content/uploads/WP-manga/data/manga_6295b8da2aa90/5461fc34b58cd174c806625056c6e0dc/02-copy.jpg','https://reaperscans.com/wp-content/uploads/WP-manga/data/manga_6295b8da2aa90/5461fc34b58cd174c806625056c6e0dc/03-copy.jpg'] for(var i=0;i<arr.length;i++){ var url = arr[i] var name = i + '.jpg' var path = Path.resolve(__dirname,dir, name) var writer = Fs.createWriteStream(path) var response = await Axios({ url, method: 'GET', responseType: 'stream' }) response.data.pipe(writer) return new Promise((resolve, reject) => { writer.on('finish', resolve) writer.on('error', reject) }) } } downloadImage()Este es el código anterior que estoy usando para descargar imágenes cuando intenté descargar varias imágenes cuyos enlaces están en una matriz, solo descarga la imagen de la primera matriz, es decir, arr[0] y no puedo averiguar cuál es el problema, no da ninguna error y puedo descargar individualmente imágenes individuales pero no voluminosas.
Entonces, jugué con este fragmento de código y pude solucionarlo eliminando la devolución de llamada de promesa en la parte inferior de su ciclo for. Tenía razón, solo completaría una solicitud GET y luego terminaría. Ahora se ejecuta a través de los tres y lo guarda en su directorio ./tmp.const
Fs = require("fs"); const Path = require("path"); const Axios = require("axios"); var dir = "./tmp"; async function downloadImage() { if (!Fs.existsSync(dir)) { Fs.mkdirSync(dir); } var arr = [ "https://reaperscans.com/wp-content/uploads/WP-manga/data/manga_6295b8da2aa90/5461fc34b58cd174c806625056c6e0dc/01-copy.jpg", "https://reaperscans.com/wp-content/uploads/WP-manga/data/manga_6295b8da2aa90/5461fc34b58cd174c806625056c6e0dc/02-copy.jpg", "https://reaperscans.com/wp-content/uploads/WP-manga/data/manga_6295b8da2aa90/5461fc34b58cd174c806625056c6e0dc/03-copy.jpg" ]; for (var i = 0; i < arr.length; i++) { var url = arr[i]; // for debugging console.log(arr[i]) var name = i + ".jpg"; var path = Path.resolve(__dirname, dir, name); var writer = Fs.createWriteStream(path); var response = await Axios({ url, method: "GET", responseType: "stream" }); // for debugging console.log(response) } } downloadImage();