axiosのheader
やbaseURL
を固定させるために、pluginを利用しています。
値の受け取りは問題ないのですが、async
やawait
をストア内に記述してもAPIからのレスポンスが返ってくる前に、
後の処理が実行されてしまい、どのようにpluginで設定すればいいか悩んでいます。
ストア
javascript
1export const actions = { 2 async getProductList (context, payload) { 3 cinst res = await this.$api('get', 'product/index') 4 console.log('GET結果') 5 console.log(res) // APIから値が返る前に実行され、undefindになる 6 }, 7}
plugin/axios.js
javascript
1import Vue from 'vue' 2import axios from 'axios' 3 4export default ({ app }, inject) => { 5 inject('api', (request, endpoint) => { 6 const session_token = '' 7 const api = axios.create({ 8 headers: { 'X_SESSION_TOKEN': session_token }, 9 baseURL: 'http://localhost:3000/api/' 10 }) 11 12 api({ 13 methods: request, 14 url: endpoint 15 }).then(response => { 16 response // APIからの値は正常に返ってくる 17 }) 18 }) 19}
plugin内にawait
を記述すれば、解決すると思ったのですがpluginでの書き方がいまいちわかりません。ご教授いただけると助かります。
回答1件
あなたの回答
tips
プレビュー