@teodor7teodor7

Как правильно дождаться загрузку файлов на nodejs?

Необходимо загрузить все файлы, а потом передать сообщение, что все файлы закачаны.
function getFiles(arrContent, folder) {
  arrContent.forEach((content, i, arr) => {
    const file = fs.createWriteStream(`${inputFolder}/${folder}/${i}.jpg`);
    const request = http.get(`${getUrl}${encodeURI(content.replace(/\s+/g,' ').trim())}`, (response) => {
      response.pipe(file);
      file.on('finish', () => {
        file.close(); // close() is async, call cb after close completes.
              }).on('error', (err) => { // Handle errors
        fs.unlink(`${inputFolder}/${entities.encode(folder)}/${i}.jpg`);
        console.log(`Error ${inputFolder}/${entities.encode(folder)}/${i}.jpg - not found!`);
      });
    });
  });
}

Получается, что функция отправляет запросы и продолжает выполнение кода. Мне необходимо дождаться полной загрузки всех файлов, а потом запустить сообщение о том что все файлы в массиве сохранены.
  • Вопрос задан
  • 297 просмотров
Пригласить эксперта
Ответы на вопрос 1
SagePtr
@SagePtr
Еда - это святое
Завернуть обработку каждого файла в promise, и через Promise.all их обработать, как вариант
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы