Axe ios API, возвращающий Promise <pending> - PullRequest
0 голосов
/ 23 января 2020

Кажется, есть проблема с обработкой 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?

Можете ли вы сказать мне, что не так с моим кодом?

...