#vue.js #async-await #quasar-framework
#vue.js #асинхронный-ожидание #quasar-framework #async-ожидание
Вопрос:
Фреймворк quasar.dev вводит понятие загрузочных файлов: https://quasar.dev/quasar-cli/boot-files
Используя vue-oidc-client, я должен дождаться oidc.startup()
вызова до создания экземпляра Vue (см. https://github.com/soukoku/vue-oidc-client/wiki#app-start )
Поскольку я не могу просто поместить await
вне async
функции, мне интересно, как я могу этого добиться.
Мой код в качестве ссылки:
// Importing stuff and creating 'oidc' with createOidcAuth(...)
const startupSucessful = oidc.startup()
if(!startupSucessful) throw Error("Unable to bootstrap OIDC client");
export default boot(async ({ app, router, Vue }) => {
oidc.useRouter(router);
});
Комментарии:
1. перед созданием экземпляра Vue функция загрузки запускается до его создания и соответствует описанию. Вы пробовали
await oidc.startup()
?2. @EstusFlask Я не могу
await
выйти за пределыasync
функции.3. Вы не должны. ожидание внутри него. Насколько я понимаю, это то, для чего это нужно.
Ответ №1:
Поскольку ваш блок экспорта является асинхронным, просто поместите туда код, который вы хотите дождаться:
export default async ({ app, router, Vue }) => {
const startupSucessful = await oidc.startup()
if(!startupSucessful)
throw Error("Unable to bootstrap OIDC client");
else
oidc.useRouter(router);
});