Утечка потоковой памяти в nodejs - PullRequest
0 голосов
/ 21 ноября 2018

Я работаю над бэкэндом nodejs, и мне нужно получить типы файлов из списка потоков файлов, которые загружает пользователь.Всякий раз, когда я запускаю функцию getStreamFileTypes, результат неверный, я могу получить видеофайл типа изображения и наоборот с этой ошибкой, выведенной на консоль:

(node:11868) MaxListnersExceededWarning: Possible EventEmitter memory leak detected. 11 close listeners added. Use emitter.setMaxListeners() to increase limit

Как это исправить?Это код:

const getStreamFileTypes = async (streams) => {
  try {
    // get a list of detector promises
    const typePromises = streams.map(stream => {
      // pipe the stream content to detector
      // to emit file type
      miss.pipe(stream, detector, err => {
        if(err) {
          console.log('an error occured');
          throw err;
        }
      });
      // stream.pipe(detector).resume();
      // return dector filetypepromise that resolves
      // to the file type of the stream
      return detector.fileTypePromise()
        .then(filetype => {
          return { ...filetype, stream };
        })
        .catch(error => {
          throw UnknownError;
        });
    });
    // wait for all stream's filetypes to be detected
    const fileTypes = await Promise.all(typePromises);
    return fileTypes;
  } catch(error) {
    console.log('error occured while getting stream types ', error);
    throw error;
  }
}
...