我使用的是Indeed求职API,每个GET请求只显示25个结果。 我需要发出4个GET请求才能接收100个搜索结果,每次在查询URL中将& start = number增加25。
我可以很好地接收第一组25个结果,但我想添加一个循环,将搜索结果增加25倍,4倍。问题是我不知道如何添加一个等待循环运行4次的回调函数,然后将所有100个结果推送到一个数组中,然后返回结果。
有人可以帮忙吗?这是我的非工作代码。
我正在使用NODE和AXIOS来获取GET请求。
var axios = require("axios");
var emptyArray = [];
var num = 0;
function runQuery(term){
for(var x=0; x<=3; x++){
var URL = "https://api.indeed.com/ads/apisearch?
publisher=4548xxxxxxxxxxxx&v=2&format=json&q=&l=" + term + "&radius=25&start=" + num + "
&limit=25&latlong=1&co=us&userip=1.2.3.4&useragent=GoogleChrome&v=2"
return axios.get(URL).then(function(response) {
for(var y=0; y<=response.data.results.length-1; y++){
emptyArray.push(response.data.results[y]);
}
return emptyArray;
}); //End axios.get
num = num+25;
}//End For Loop
} // End runQuery
runQuery("New York");
答案 0 :(得分:0)
我可能错了,但我认为你在回调中不需要第二个for循环,因为你的第一个循环已经做了魔术。它将通过4种不同的回调触发.get四次。并使用applyfunction将响应数组添加到现有数组。试着这样做:
return axios.get(URL).then(function(response) {
emptyArray.push.apply(emptyArray, response.data.results);
}); //End axios.get
num = num+25;