ПОЛУЧИТЬ запрос API к нескольким URL - PullRequest
0 голосов
/ 16 апреля 2020

Проблема: У меня 47 URL-адресов, все из которых отличаются только последним одним / двумя символами, 1-47.

Пример: https://example.com/api/data?number=1 <--- последний ди git в диапазоне от 1 до 47 </p>

Мне нужно сделать запрос API GET к каждому из них для их данных, чтобы я мог построить их.

То, что у меня есть до сих пор:

let exampleLink = 'https://example.com/api/data?code='

let data = []

const req = new XMLHttpRequest()

for(let i=1; i<48; i++){
  req.open('GET', exampleLink + i, true)
  req.send();

  req.onload = () => {
    let result = JSON.parse(req.responseText)
    data.push(result)
  }
}

Это не работает для меня, потому что FOR l oop только в итоге дает мне последний результат # 47.

Будет Кто-нибудь знает, как сделать такой запрос и pu sh данные ответа в массив?

Большое спасибо,

Codey

Ответы [ 2 ]

0 голосов
/ 16 апреля 2020

Это нормально, что он дает вам последний результат, ваш код находится в Javascript, попробуйте использовать функцию Asyn c, что-то вроде этого (ax ios для запроса это отличный пакет узлов, который вы должны посмотреть это):

for(let i=1; i<48; i++){
source = url +`&page_size=${i}`
async function ResourcesFetcher() {
await axios.get(source).then((results ) => {
//the do whatever action you want to 
}
0 голосов
/ 16 апреля 2020

Существуют разные способы решения этой проблемы. В этом случае, чтобы быстро это исправить, вы можете использовать локальную переменную внутри для l oop, так как в настоящее время вы переопределяете запрос каждый раз.

let exampleLink = 'https://example.com/api/data?code='

let data = []

for(let i=1; i<48; i++){
  let req = new XMLHttpRequest()
  req.open('GET', exampleLink + i, true)
  req.send();

  req.onload = () => {
    let result = JSON.parse(req.responseText)
    data.push(result)
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...