Как получить динамические данные при условии кода - PullRequest
0 голосов
/ 12 июня 2018

Учитывая, что у меня есть код ниже, который извлекает данные из локального файла.

export function getData() {
    const promiseMSFT = fetch("http://localhost:8080/data.json")
        .then(response => response.json())
        .then(data => {
        var tempData = [];
        for (var i = 0; i < data.length; i++) {
          //some code
       }
      return tempData;
    })  
    return promiseMSFT;
}

Как я могу преобразовать это, чтобы извлекать данные динамически из другого / динамического URL?

Пример, если яесть эти URL, которые генерируются:

url1 with data1
url2 with data2
url3 with data3

Как я могу получить три результата.

Ответы [ 3 ]

0 голосов
/ 12 июня 2018

обновить ответ @tung yu

export function getData(url) {
    const promiseMSFT = fetch(url)
        .then(response => response.json())
        .then(data => {
        var tempData = [];
        for (var i = 0; i < data.length; i++) {
          //some code
       }
      return tempData;
    })  
    return promiseMSFT;
}

и затем сделать это:

data1 = getData(url1)
data2 = getData(url2)
data3 = getData(url3)

для многих URL:

var urls = [url1,url2, ....]; 
var dataitems = []; 
for(var i=0;i<urls.length;i++) 
{ 
     dataitems[i] = getData(url[i]);
}

вы получите окончательный результатздесь в массиве dataitems

0 голосов
/ 12 июня 2018

вы можете сделать так:

export function getData(url) {
 //if you have n urls
let URLS = []
let tempData = [];
for(int i=1;i<=n;i++){
  url = `site/test/${i}/data`
  URLS.push(url);
 }
return Promise.all(
  URLS.map(url => 
    fetch(url)
    .then(response => response.text())
    .then(responseData => {
      //push data to temp data here
    })
    .catch(err => /* handle errors here */ console.error(err))
  )
).then(() => {// do stuff}, err => {// handle error})
}
0 голосов
/ 12 июня 2018
urlArr = [site/test/1/data.json, site/test/2/data.json, site/test/3/data.json]
export function getData(url) {
    const promiseMSFT = fetch(url)
        .then(response => response.json())
        .then(data => {
        var tempData = [];
        for (var i = 0; i < data.length; i++) {
          //some code
       }
      return tempData;
    })  
    return promiseMSFT;
}

urlArr.forEach(url=>{getData("http://"+url)})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...