асинхронная функция - функции данных должны возвращать объект? - PullRequest
0 голосов
/ 20 февраля 2019

Почему мы не можем использовать асинхронность с функцией данных, но это нормально с другими функциями?Например:

export default {
  data: async function () { // not ok
    return {
      item: null,
    }
  },
  beforeMount: async function() { // this is ok
    let result = await axios.get('./data-social.json')
    this.item = result.data
  },
  mounted() {
  },
}

Я получу эту ошибку:

[Vue warn]: data functions should return an object:

Есть идеи?

1 Ответ

0 голосов
/ 20 февраля 2019

Помещение async перед функцией превращает ее в функцию, которая возвращает Promise.Метод data должен возвращать object, а не Promise.

async function myFunction () { [code] }

эквивалентно

function myFunction () { 
    return Promise(function (resolve, reject) {
        try {
            resolve((function () { [code] })());
        } catch (error) {
            reject(error);
        }
    });
}

. Я предлагаю удалить асинхронную проверку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...