Есть некий файл, Friends.js, в котором выполняется ajax запрос, данные приходят и выводятся через консоль (для достоверности делаю так). Так же, сам ответ я отдаю с помощью return.
В другом файле, который использует Friends.js, я запрашиваю метод из Friends.js. Но, почему то, выводятся данные в виде undefined.
Вот код:
main.js (главный файл):
import Vue from 'vue'
import App from './App.vue'
import Router from './routes.js'
import VueAxios from 'vue-axios'
import axios from 'axios'
import VeeValidate from 'vee-validate'
import Vuex from 'vuex'
import Friends from './packages/Users/Friends.js'
Vue.use(VueAxios, axios)
Vue.use(VeeValidate)
Vue.use(Vuex)
Vue.use(Friends)
Файл App.vue (в нём я запрашиваю метод из файла Friends):
export default {
data() {
return {
}
},
methods: {
// Запрашиваем данные с помощью метода, описанного в файле Friends.js
getFriends() {
console.log(this.$friends.getFriends())
},
},
}
Собственно сам файл
Friends.js:
export default function(Vue){
Vue.friends = {
/**
* Получаем друзей пользователя
* Не работает глобально и отдаёт undefined вне этого файла, а в нём через консоль данные выдаются нормально
*/
getFriends() {
Vue.axios.get('/api/v1/friends')
.then(response => {
return response.data
})
},
}
Object.defineProperties(Vue.prototype, {
$friends: {
get: () => {
return Vue.friends
}
}
})
}