Это было бы полезно использовать async
/ await
Проблема в том, что вы возвращаете обещание в вашем Array.map()
. Даже если у вас есть блок .then
после вашего обещания, само обещание - это то, что возвращается, потому что оно выполняется асинхронно.
Примерно так должно быть близко
apiRouter.get('/photos', async (req,res,next) => {
const response = await axios.get("https://graph.instagram.com/me/media?fields=id,caption&access_token={some_access_token}")
const photosArr = response.data.data;
const arr = photosArr.map(async (id) => {
const resp await axios.get(`https://graph.instagram.com/${id.id}?fields=id,media_type,media_url,username,timestamp&access_token={some_acces_token}`)
return resp.data.media_url;
};
const final = await Promise.all(arr);
res.send(final);
next();
})