如何从异步方法中提取值并将值放入apolloProvider变量中?

问题描述 投票:0回答:2

我想从异步方法extractZMockClient中提取值,并将此值放入属性:defaultClient和clients的apolloProvider变量中。

我已经这样做了,但是在console.log(apolloProvider())上我知道了:enter image description here

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
    }
})
javascript vue.js promise async-await lazy-loading
2个回答
0
投票

extractZMockClient隐式返回了一个承诺,该承诺将根据您的返回值进行解析。要获得价值,请使用

extractZMockClient().then(function(result){ 
    // create your apollo
})

结果对应于您在extractZMockClient中的回报

建议:扔掉摘录,然后使用

ZMockClient().then((response)=>{ 
    // dostuff
}).catch((error)=>{console.error(error)})

因为您将其与await一起使用,它会返回一个promise;)


-1
投票

我认为您在这里缺少await

const ZMockClient = async () => await import("z-mock-client")
© www.soinside.com 2019 - 2024. All rights reserved.