forEach тут совсем ни при чем.
Хватит относиться к await - как к какой-то магической вещи которая за вас всё сделает.
Если вы не понимаете как она работает - перепишите код на промисы. К слову тут await вообще никак не поможет.
const getImages = async () =>
new Promise((resolve, reject) =>
request({
url: `https://api.tumblr.com/v2/blog/nameblog/posts?api_key=${process.env.TUMBLR_KEY}&type=photo`,
json: true,
},
(error, response, body) => {
if (error) {
reject('Unable to connect');
} else if (body.meta.status === 200) {
body.response.posts.forEach((obj) => {
const photos = obj.photos
.filter(photo =>
photo.original_size.width > photo.original_size.height,
).map(photo => photo.original_size.url);
resolve(photos);
});
}
}),
);
Переписал тот кошмар что был.
Поставьте линтер(eslint), почитайте про методы filter, map, не мешайте стрелочные и обычные функции.