Как вернуть чистое значение промиса из merge-images.js?

Я использую слияние изображений и все работает нормально. Но почему-то невозможно отобразить результат без значения __zone_symbol__value. У меня есть источник данных. И я хочу создать новый массив с уже объединенными изображениями.

Мой код выглядит так:

let imageMerge = data.map( d => ({        
      pic: mergeImages(['data:image/jpeg;base64,' + d.pic, 'assets/img/123.png']),        
      text: d.text
    }));  

console.info(imageMerge)

И результат console.info:

[
 {
   pic: {​​​
    __zone_symbol__state: true​​​
    __zone_symbol__value: "data:image/png;base64,iVBORw0KGgo...etc"
   },
   text: "Some text"
 }
]

Мне нужно получить значение из __zone_symbol__value

Например, таким образом можно вывести нормальный результат, но в console.info

mergeImages(['data:image/jpeg;base64,' + d.pic, 'assets/img/123.png']).then(b64 => console.info(b64));

Но мне нужен чистый результат в цикле

Есть идеи? заранее спасибо

Поведение ключевого слова "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) для оценки ваших знаний,...
0
0
172
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

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

Как указано в примерах, метод mergeImages возвращает Promise. Поэтому вам нужно подождать, чтобы получить фактические значения, например:

 let pic = await mergeImages(['data:image/jpeg;base64,' + d.pic, 'assets/img/123.png'])

async function sample() {

  const data = [1, 2, 3];
  let imageMerge = data.map(async d => ({
    pic: await mergeImages(['data:image/jpeg;base64,' + d, 'assets/img/123.png']),
    text: d.text
  }));

  const all = await Promise.all(imageMerge);

  console.info(all);

}

function mergeImages(...args) { // dummy method
  return new Promise(r => {
    const res = Array.from(args).join(",");
    r(res);
  })
}

sample();

как я могу записать результат в переменную? Я имею в виду глобально. Мне нужно присвоить этот результат переменной this.newArr

Kroshandowski 25.12.2020 15:05

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