Я использую слияние изображений и все работает нормально. Но почему-то невозможно отобразить результат без значения __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));
Но мне нужен чистый результат в цикле
Есть идеи? заранее спасибо
Как указано в примерах, метод 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