如何从nuxt-middleware向vuex存储发送多个API请求?

时间:2018-08-15 10:50:18

标签: javascript vue.js vuejs2 vuex nuxt.js

我正在尝试从nuxt-middleware向vuex存储发送多个API调用。我已经尝试过使用单个api,并且可以正常工作,但是如何访问多个API?

// middlewear/log.js

import axios from 'axios';

export default function ( {store} ) {
return axios.get(`http://my/api`)
    .then((response) => {
        console.log(response.data);
        store.commit('add', response.data);
    });
}

我尝试了以下方法,但没有成功。请任何人可以帮助我吗?

import axios from 'axios';
async asyncData( {store} ){
    return axios.all([
        axios.get('http://my/api'),
        axios.get('http://my/api2')
    ]).then(axios.spread((first, second) => {
        return {
            store.commit('add', first.data);
            store.commit('sub', second.data);
            // posts: first.data,
            // total: second.data
        }
    })).catch((err) => {
      error({ statusCode: 404, message: err.message })
    })

}

1 个答案:

答案 0 :(得分:0)

嘿,在我看来,删除第二个退货单后,效果很好

import axios from 'axios';
async asyncData( {store} ){
    return axios.all([
        axios.get('http://my/api'),
        axios.get('http://my/api2')
    ]).then(axios.spread((first, second) => {
            store.commit('add', first.data);
            store.commit('sub', second.data);
            // posts: first.data,
            // total: second.data
    })).catch((err) => {
      error({ statusCode: 404, message: err.message })
    })

}