yaNastia
@yaNastia

Как извлечь значения из асинхронного метода в свойство объекта?

Я хочу извлечь значение с асинхронного метода `extractZMockClient` и поместить это значение в свойства: `defaultClient`, `clients` объекта `apolloProvider`.

Я уже это делаю но в консоле всеравно получаю это:

5e023e86040b5780041092.jpeg

const ZMockClient = async () => import("z-mock-client")

const extractZMockClient = async () => {
    try {
        const callZMockClient = await ZMockClient()
        return callZMockClient.mockedClient
    } catch (ex) {
        throw new Error(ex)
    }
}

const apolloProvider = new VueApollo({
    defaultClient: MOCKED_UI ? extractZMockClient() : v2,
    clients: {
        v2: MOCKED_UI ? extractZMockClient() : v2
    }
})
  • Вопрос задан
  • 94 просмотра
Пригласить эксперта
Ответы на вопрос 2
@abberati
frontend-разработчик
Вы НИКАК не можете вынести значение из асинхронного кода в синхронный, потому что на момент выполнения асинхронного кода весь синхронный уже выполнился.

Единственный вариант — выполнять асинхронно тот код, что завязан на другой асинхронный код. То есть создавать аполлопровайдер нужно тоже асинхронно. Напишите функцию, которая будет возвращать промис с провайдером и используйте где нужно.
Ответ написан
Комментировать
kulakoff
@kulakoff Куратор тега Vue.js
Vue.js developing
... await extractZMockClient()
Ответ написан
Ваш ответ на вопрос

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

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