Я знакомлюсь с Vue + Vuex, и мне трудно понять, где инициализировать API, который имеет асинхронный c метод инициализации.
Я, очевидно, не могу await
вне asyn c функции, подобной этой:
import { RequestSystemProxy } from "../../assets/scripts/RequestSystemProxy"
const system = new RequestSystemProxy();
const handle = await system.Initialize();
const state = { ... };
const getters = { ... };
const actions = { ... methods that use 'handle' ... };
const mutations = { ... };
export default {
state,
getters,
actions,
mutations
}
и Vue не нравится, когда я экспортирую обещание, подобное этому:
import { RequestSystemProxy } from "../../assets/scripts/RequestSystemProxy"
export default (async function () {
const system = new RequestSystemProxy();
const handle = await system.Initialize();
const state = { ... };
const getters = { ... };
const actions = { ... methods that use 'handle' ... };
const mutations = { ... };
return {
state,
getters,
actions,
mutations
}
})();
Мое намерение это использовать handle
внутри actions
, чтобы делать различные асин c запросы, но это, очевидно, не может произойти, пока не разрешится handle
.
Я немного растерялся, Я не уверен, где это лучшее место. Я полагаю, что мог бы инициализировать handle
глобально, прежде чем инициализировать приложение Vue, но это структурно отодвигает инициализацию от того места, где оно используется. Есть ли типичный подход к выполнению чего-то подобного?
Любая помощь будет очень признательна!