Функция вернула неопределенное, ожидаемое обещание или значение, тогда как я возвращаю новое обещание

Почему я получаю сообщение «Функция вернула неопределенное значение, ожидаемое обещание или значение»? Я не могу понять. Может быть, я что-то упускаю.

function getImage(url) {
  console.info('Begin get image');
  return new Promise(function(resolve, reject) {
  https.get(url, res => {
    // Initialise an array
    const bufs = [];

    // Add the data to the buffer collection
    res.on('data', function (chunk) {
      console.info('on data image');
      bufs.push(chunk)
    });

    // This signifies the end of a request
    res.on('end', function () {
      console.info('on end image');

      // We can join all of the 'chunks' of the image together
      const data = Buffer.concat(bufs);

      resolve(data);
    });
  })
    // Inform the callback of the error.
    .on('error', function (error) {
      reject(error);
    });
});
}

Здесь я вызываю функцию:

getImage(imageURL)
      .then( dataImg => {
        console.info('image get get');
        (...)
      }

Я должен получить dataImg и выполнить операции.

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
0
117
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я протестировал следующий код с помощью узла и получил буфер изображения. Может быть, проверьте, не пропустили ли вы где-то скобки.

var https = require("https");

function getImage(url) {
    console.info('Begin get image');

    // Return the loading-promise
    return (new Promise((resolve, reject) => {
        https.get(url, (res) => {
                // Initialise an array to store the image-data
                const bufs = [];

                // Add the data to the buffer collection
                res.on('data', function(chunk) {
                    console.info('on data image');
                    // Push the recieved chunks into the array
                    bufs.push(chunk)
                });

                // This signifies the end of a request
                res.on('end', function() {
                    console.info('on end image');

                    // We can join all of the 'chunks' of the image together
                    const data = Buffer.concat(bufs);

                    // Return the image-buffer
                    resolve(data);
                });
            })
            // Inform the callback of the error.
            .on('error', function(error) {
                reject(error);
            });
    }));
}

(function() {
    getImage("https://preview.redd.it/utrlx02sx2431.jpg?width=640&crop=smart&auto=webp&s=8ed20013607e0d6019f59ab01b0e4930eb913351")
        .then((dataImg) => {
            console.info('image get get');
            console.info(dataImg);
        });
})();

Консольный вывод:

ab@xy:~/test$ node testrun.js 
Begin get image
on data image
on data image
on end image
image get get
<Buffer ff d8 ff e0 00 10 4a 46 49 46 00 01 01 01 00 00 00 00 00 00 ff e1 00 42 45 78 69 66 00 00 4d 4d 00 2a 00 00 00 08 00 01 87 69 00 04 00 00 00 01 00 00 ... 20311 more bytes>

Спасибо. Да на самом деле именно в моей тогда оговорке у меня ошибка. Я попытался ввести полученные данные в виде изображения base 64, которое не...

Otourou Da Costa 13.06.2019 15:45

Другие вопросы по теме