dima9595
@dima9595
Junior PHP

Почему не возвращает данные из пакета?

Есть некий файл, 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
            }
        }
    })
}
  • Вопрос задан
  • 124 просмотра
Решения вопроса 1
0xD34F
@0xD34F Куратор тега Vue.js
почему то, выводятся данные в виде undefined

Да понятно почему - вы ничего не возвращаете из метода getFriends.

То есть, должно быть так:

getFriends() {
  return Vue.axios.get(...

Использовать, соответственно, как-то так:

this.$friends.getFriends().then(friends => console.log(friends))
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы