Кажется, есть проблема с обработкой Ax ios. Код ниже:
module.exports.SummonerRecentChampion = async event => {
let {accountId, summonerName} = event.pathParameters;
const enCodeSummonerName = encodeURI(summonerName);
const getMatches = axios.get(`https://kr.api.riotgames.com/lol/match/v4/matchlists/by-account/${accountId}?endIndex=10&api_key=${api_key}&summonerName=${enCodeSummonerName}`);
const championCount = (matches) => {
return matches.reduce((b, c) => ((b[b.findIndex(d => d.champion.champion === c.champion)] || b[b.push({
champion: c,
count: 0
}) - 1]).count++, b), []);
};
const championStats = (matches) => {
return matches.map(match => {
const setParticipant = [];
return axios.get(`https://kr.api.riotgames.com/lol/match/v4/matches/${match.gameId}?api_key=${api_key}`).then(each => {
const {participants, participantIdentities} = each.data;
const participantId = participantIdentities.find(participant => participant.player.summonerName === summonerName).participantId;
setParticipant.push(participants.find(participant => participant.participantId === participantId));
return setParticipant
})
});
};
return getMatches.then(async fetchMatch => {
const {matches} = fetchMatch.data;
return Promise.all(
[championCount(matches), championStats(matches)])
.then(([championCount, championStats]) => {
console.log('championCount:',championCount)
console.log('championStats:',championStats)
return {
statusCode: 200,
body: JSON.stringify(
{
data: championCount
},
)
}
})
})
};
результат удара
[ Promise { <pending> },
Promise { <pending> },
Promise { <pending> },
Promise { <pending> },
Promise { <pending> },
Promise { <pending> },
Promise { <pending> },
Promise { <pending> },
Promise { <pending> },
Promise { <pending> } ]
Я думаю, что мы должны использовать другой подход при возвращении Топора ios, но я не уверен, как.
Или вы не можете вызвать другой API в Ax ios .then?
Можете ли вы сказать мне, что не так с моим кодом?