results = results.slice(0, 1);
for (const key in results) {
if (results.hasOwnProperty(key)) {
const element = results[key];
element.introtext = h2p(element.introtext);
element.fulltext = h2p(element.fulltext);
clientGI.search(element.title)
.then(images => {
element.images = images.map(image => [image.url, image.thumbnail]);
});
}
}
const waitLoad = [];
results = results.slice(0, 1);
for (const key in results) {
if (results.hasOwnProperty(key)) {
const element = results[key];
element.introtext = h2p(element.introtext);
element.fulltext = h2p(element.fulltext);
// добавим промис полученный в
waitLoad.push(
clientGI.search(element.title)
.then(images => {
element.images = images.map(image => [image.url, image.thumbnail]);
// возвращаем промис который всегда выполнится
return Promise.resolve(element);
});
);
}
}
// когда все картинки загружены выполняем какие либо действия с ними
Promise.all(waitLoad).then(values => {
// ...
});
function getWithImages(result) {
return new Promise((res, rej) => {
const elPromises = [];
for (let key in result) {
if (!result.hasOwnProperty(key)) continue;
const element = result[key];
element.introtext = h2p(element.introtext);
element.fulltext = h2p(element.fulltext);
elPromises.push(
clientGI.search(element.title)
.then(images => {
element.images = images.map(image => [image.url, image.thumbnail]);
});
);
}
Promise.all(elPromises).then(function() {
// все готовы
res(result);
});
});
}
const gotImagesPromise = getWithImages(results[0]);