Мой код использует функцию плагинов в Vuejs для определения глобальной общей переменной.
Vue.use(shared)
shared
определяется как: -
export const shared = {
config: getAppConfig()
}
shared.install = function() {
Object.defineProperty(Vue.prototype, '$shared', {
get() {
return shared
}
})
}
function getAppConfig() {
var api = getAPIURL()
return axios.get("https://url/get_config")
.then(response => {
return response.data
}
}
Моя проблема в том, что в моем компоненте, если я использую эту переменную this.$shared.config
, я получаю undefined
.
Глядя на окно консоли и оператор отладки, мой код компонента выполняется до того, как плагин получает время для this.$shared.config
.
Я новичок в javascript + Vuejs, но когда я исследовал эта ошибка связана с асинхронностью топора ios, поэтому я решил вернуть обещание и использовать ожидание.
function getAppConfig() {
var api = getAPIURL()
return axios.get("https://url/get_config")
}
Но, когда в моей функции shared.install
я пытаюсь сделать: -
shared.install = function() {
let config = await shared.config
Я получаю ошибку: Syntax Error: await is a reserved word
.
Так как я ' м, похоже, я делаю фундаментальную ошибку в том, как я должен сделать этот код синхронным. Как правильно это исправить?