@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!`);
      });
    });
  });
}

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

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

Войти через центр авторизации
Похожие вопросы
Qlean Labs Москва
До 250 000 руб.
Acme Crypto Corp Нижний Новгород
от 100 000 до 150 000 руб.
22 марта 2019, в 01:06
4000 руб./за проект
22 марта 2019, в 00:24
10000 руб./за проект