Javascript 如何从异步方法中提取值并将值放入变量中?
我想从异步方法Javascript 如何从异步方法中提取值并将值放入变量中?,javascript,vue.js,promise,async-await,lazy-loading,Javascript,Vue.js,Promise,Async Await,Lazy Loading,我想从异步方法extractZMockClient中提取值,并将该值放入属性:defaultClient和clients中的apolloProvider变量中 我已经这样做了,但是在console.log(apolloProvider())上我得到了: constzmockclient=async()=>import(“z-mock-client”) const extractZMockClient=async()=>{ 试一试{ const callZMockClient=await ZM
extractZMockClient
中提取值,并将该值放入属性:defaultClient和clients中的apolloProvider变量中
我已经这样做了,但是在console.log(apolloProvider())
上我得到了:
constzmockclient=async()=>import(“z-mock-client”)
const extractZMockClient=async()=>{
试一试{
const callZMockClient=await ZMockClient()
返回callZMockClient.mockedClient
}捕获(ex){
抛出新错误(ex)
}
}
const apolloProvider=新的VueAppollo({
defaultClient:Mock_UI?extractZMockClient():v2,
客户:{
v2:mock_UI?extractZMockClient():v2
}
})
我想你错过了一个等待
这里:
constzmockclient=async()=>等待导入(“z-mock-client”)
extractZMockClient隐式返回一个承诺,该承诺与您返回的值进行解析。为了获得你的价值,请使用
extractZMockClient().then(function(result){
// create your apollo
})
结果与extractZMockClient中的返回值相对应
建议:扔掉提取物,直接使用
ZMockClient().then((response)=>{
// dostuff
}).catch((error)=>{console.error(error)})
由于您将它与wait一起使用,它将返回一个承诺;) 如果
VueAppollo
不接受承诺作为参数,则需要将整个VueAppollo
作为承诺。如果您说要延迟加载客户端,为什么要立即实例化它呢?因为wait
表达式等待承诺被解析并作为解析值进行计算,所以不需要更改语法。您可以阅读更多关于它的信息,这确实是可能的,只要它在异步函数中使用,我不确定@kikosko是否真的喜欢它们XD