Зачем нужен new Promise при конвертировании файла в base64

Есть модуль загрузки файла. В котором пользователь выбирает файлы и отправляет бэку.

Этот класс конвертирует файлы в base64

export default class Service {
  static toBase64(file) {
    const reader = new FileReader();
    reader.readAsDataURL(file);
    return new Promise((resolve, reject) => { // ?
      reader.onload = () => resolve(reader.result); // ?
      reader.onerror = (err) => reject(err); // ?
    }); 
  }
}

Вот тут перебираются все файлы и отправляются бэку

const attachments = [];

for (let i = 0; i < file.length; i++) {
   const contentBase64 = FileService.toBase64(file[i]);
   const filename = FileService.getFilename(file[i]);
   attachments.push({ contentBase64, filename });
}

Я не понимаю что происходит тут. Зачем тут вообще нужен new Promise?

return new Promise((resolve, reject) => { // ?
    reader.onload = () => resolve(reader.result); // ?
    reader.onerror = (err) => reject(err); // ?
}); 

Ответы (0 шт):