【问题标题】:AJAX GET REQUEST WITH MULTIPLE PARAMETERS, ONE URL, RESULTS PUSHED INTO ARRAYAJAX 获取具有多个参数的请求,一个 URL,将结果推入数组
【发布时间】:2017-05-23 02:45:55
【问题描述】:

我正在使用 Indeed 求职 API,每个 GET 请求仅显示 25 个结果。 我需要发出 4 个 GET 请求来接收 100 个搜索结果,每次都将查询 URL 中的 &start= 数字增加 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");

【问题讨论】:

    标签: ajax node.js api callback get


    【解决方案1】:

    我可能错了,但我认为你只是不需要回调中的第二个 for 循环,因为你的第一个循环已经发挥了作用。它将使用 4 个不同的回调触发 .get 四次。并使用 applyfunction 将响应数组添加到现有数组中。尝试这样做:

    return axios.get(URL).then(function(response) {
    
          emptyArray.push.apply(emptyArray, response.data.results);
    
    }); //End axios.get
    
    num = num+25;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-20
      相关资源
      最近更新 更多