Axios:使用一个请求中的另一个请求的数据链接多个请求

时间:2020-07-14 23:52:02

标签: node.js express axios

我需要进行一堆API调用,并最终像这样合并它们的数据

axios.all([
  axios.get('https://api.github.com/users/mapbox'),
  axios.get('https://api.github.com/users/phantomjs')
])
.then(responseArr => {
  //this will be executed only when all requests are complete
  console.log('Date created: ', responseArr[0].data.created_at);
  console.log('Date created: ', responseArr[1].data.created_at);
});

但是我也想在另一个API调用中使用一个API中收到的数据。有点像这样

data = axios.get('https://api.github.com/users/mapbox'),
axios.get('https://api.github.com/users/'+data.user);

如何将其用于5个API调用?

1 个答案:

答案 0 :(得分:0)

我将为此使用异步等待。

async function fetchData(){
try {
 const response = await axios.get("https://api.github.com/users/mapbox");
 const res = response.data;
 const getUser = await axios.get(`https://api.github.com/users/${res.user}`);
 const getWhatever = getUser.data;
 ......
 ......
 } catch (error) {
 console.log(error)
 }
}

每当获得结果时,也可以使用嵌套的.then方法,然后使用该方法发出另一个请求。但是我认为异步等待会更好。