Как получить значение [[PromiseValue]]? (РЕШЕНО)

РЕШЕНО: нашел ответ в этом посте «Вернуть промис или как получить PromiseValue»

У меня есть задача: Сжать полученное от пользователя изображение на клиенте и отправить на сервер.
Нашел решение хорошего компрессора свойствами JS на DEV.To
Вот код функции:

function compressImage (base64) {
  const canvas = document.createElement('canvas')
  const img = document.createElement('img')

  return new Promise((resolve, reject) => {
    img.onload = function () {
      let width = img.width
      let height = img.height
      const maxHeight = 200
      const maxWidth = 200

      if (width > height) {
        if (width > maxWidth) {
          height = Math.round((height *= maxWidth / width))
          width = maxWidth
        }
      } else {
        if (height > maxHeight) {
          width = Math.round((width *= maxHeight / height))
          height = maxHeight
        }
      }
      canvas.width = width
      canvas.height = height

      const ctx = canvas.getContext('2d')
      ctx.drawImage(img, 0, 0, width, height)

      resolve(canvas.toDataURL('image/jpeg', 0.7))
    }
    img.onerror = function (err) {
      reject(err)
    }
    img.src = base64
  })
}

При добавлении файла нужно отобразить выбранные изображения и вложить значение сжатой фотографии у input[type=hidden]

введите сюда описание изображения

Вот код который реагирует на изменение input:

$('input[name=photos]').on('change', function() {
        for (var i = 0, numFiles = this.files.length; i < numFiles; i++) {
            var file = this.files[i];

            var reader = new FileReader();
            reader.onload = function(e) {
                var image = new Image();
                image.src = e.target.result;
                
                var dataImg = CompressImage(image.src);

                var imgCount = $('#list li').find('img').length;
                var imgIndex = imgCount;

                $('#list li').eq(imgIndex).find('input[name=photos]').after('<img src="'+e.target.result+'" width="70px" height="70px" />');
                console.log(dataImg); // выводит в консоль [[PromiseValue]] Как его получить?!
            };
            reader.readAsDataURL(file);
        }
    });

введите сюда описание изображения

КАК ПОЛУЧИТЬ ЗНАЧЕНИЕ [[PromiseValue]] ?!

Результат можно увидеть и протестировать на сайте eBolt


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