无法将axios响应值分配给变量-vue.js

时间:2019-02-25 12:35:38

标签: vue.js vuejs2 axios vuex

我创建了一个包含几个字符串的数组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 :(得分:1)

非常感谢@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));
  })
)},