链接多个 axios 请求时遇到问题

Chr*_*lez 1 javascript node.js reactjs axios

好的,所以我想做的是执行 axios.get() 请求,专门提取特定数据和 id,然后使用该 id,将其作为字符串文字,以便我可以执行第二个请求。我不断收到信息未定义。

axios
  .get(
    `https://na1.api.riotgames.com/lol/summoner/v4/summoners/by-name/bloodstrive?api_key=${api}`
  )
  .then(response => {
    info = response.data.id;
  })
  .then(
    axios.get(
      `https://na1.api.riotgames.com/lol/league/v4/entries/by-summoner/${info}?api_key=${api}`
    )
  )
  .then(response => {
    summoner = response.data;
    return summoner;
  });
let getSummonerId = (req, res) => {
  res.status(200).send(summoner);
};
module.exports = {
  getSummonerId
};
Run Code Online (Sandbox Code Playgroud)

Fra*_*erZ 5

修复你的链接:

axios
  .get(
    `https://na1.api.riotgames.com/lol/summoner/v4/summoners/by-name/bloodstrive?api_key=${api}`
  )
  .then(response => {
    return response.data.id;
  })
  .then(info => {
    return axios.get(
      `https://na1.api.riotgames.com/lol/league/v4/entries/by-summoner/${info}?api_key=${api}`
    )
  })
  .then(response => {
    summoner = response.data;
    return summoner;
  });
Run Code Online (Sandbox Code Playgroud)

就我个人而言,我建议使用异步来完成此类任务。通过 Promise 使处理事情变得更加容易:

let fetchSummoner = async() => {
    const res = await axios.get(`https://na1.api.riotgames.com/lol/summoner/v4/summoners/by-name/bloodstrive?api_key=${api}`);

    const info = res.data.id;

    const res2 = await axios.get(`https://na1.api.riotgames.com/lol/league/v4/entries/by-summoner/${info}?api_key=${api}`);

    const summoner = res2.data;

    return summoner;
}
Run Code Online (Sandbox Code Playgroud)