Vue.js объединяет данные из RESP API - PullRequest
0 голосов
/ 11 мая 2018

Мне нужно объединить несколько вызовов API для конечного объекта, потому что у API есть ограничения для использования, у любого есть представление о том, как можно объединить несколько вызовов в одном конечном объекте, далее приведен пример моего кода, мне нужны все данныев этом листе, но не работает:

  created(){
    this.$http.get('/api/transactions?senderId=8642612272713533685S&limit=1&offset=000')
    .then( function(res){
      console.log(res.body.count);
      let limit = Math.ceil(res.body.count/1000);
      console.log(limit);
      let m = {};
      let off = 0;
        for (var i = 0; i <= limit; i++) {
          this.$http.get('/api/transactions?senderId=8642612272713533685S&limit=1000', {params:{offset: off}})
          .then( function(data){
             this.lista = { ...this.lista, ...data.body.transactions } 
          } )

          off = off + 1000;
       }
      }
    );
  }

любая помощь будет оценена

1 Ответ

0 голосов
/ 11 мая 2018

Использование Promise.all, скорее всего, то, что вы ищете. Я напишу достаточно кода, чтобы вы могли понять, куда идти.

// Populate your array array with URLs you want to get
let urls = ["url1", "url2", "...and so on"];
// Make into web request promises
let httpReqPromises = urls.map( url => this.$http.get(url) )

// Wait for all of them to resolve
Promise.all(httpReqPromises).then(allResponses => {
    // Put them all together
    this.lista = allResponses.reduce((a, b) => ({...a, ...b}, {})
})

Единственная работа, которую я оставляю вам, это то, как вы заполняете переменную url.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...