Невозможно присвоить значение ответа axios переменной - vue.js - PullRequest
0 голосов
/ 25 февраля 2019

Я создал массив lists, который содержит несколько строк.Теперь я хочу перебрать lists (т.е. в getSubs()) и сделать запрос Axios.Этот запрос должен содержать одну строку из lists каждый раз.

Мой код:

computed: {
  subscribers: {
    get() {
      return this.$store.state.subscribers;
    },
    set(value) {
      this.$store.commit('updateSubscribers', value);
    },
  },
},
methods: {
  getLodzkie() {
    axios
      .get(`correct_domain/lodzkietargi/get`)
      .then((response) => {
        this.subscribers = [];
        this.subscribers.push.apply(this.subscribers, response.data)
      })
      .catch(function(error) {
        console.log(error);
      })
  },
  getSubs() {
    function getSub(value) {
      axios
      .get(`correct_domain/${value}/get`)
      .then((response) => {
        this.subscribers.push.apply(this.subscribers, response.data)
      })
      .catch(function(error) {
        console.log(error);
      });
      console.log(value);
    }
    this.lists.forEach(function(entry) {
      getSub.call(null, entry);
    });
  },

getLodzkie() прекрасно работает

1 Ответ

0 голосов
/ 25 февраля 2019

Большое спасибо @ourmandave.Это мне очень помогло.

Переписал функцию ниже:

getSubs() {
  let listsReqs = this.lists.map(list => {
    return axios.get(`correct_domain/${list}/get`);
  });
  axios.all(listsReqs)
  .then(axios.spread((...responses) => {
    responses.forEach(res => this.subscribers.push.apply(this.subscribers, res.data));
  })
)},
...