AJAX获取多个参数请求,一个URL,结果推入阵列

时间:2017-01-08 21:02:06

标签: ajax node.js api callback get

我使用的是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");

1 个答案:

答案 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;