由于Async始终返回promise,我们必须解析它以获取值。我需要导出它的值(返回的对象),以便我们可以在另一个模块中使用它。
export const getClient = async () => {
return await HttpService.getValueFromSettings('durl').then((response) => {
if(isValidResponse(response)) {
endpoint = response.data;
export const client = createClient(response.data);
//This is where getting error that we can not export in side the function
}
}
})
}
我需要在另一个模块中使用客户端。
我试图在调用之前声明并初始化客户端对象,但是没有工作:
export let client = null;
export const getClient = async () => {
return await HttpService.getValueFromSettings('durl').then((response) => {
if(isValidResponse(response)) {
endpoint = response.data;
client = createClient(response.data);
return client;
}
}
})
}
答案 0 :(得分:4)
我很确定你不能做你想做的事,至少不能直接做。
相反,您应该只导出getClient()
函数本身,并在需要客户端时调用它。
import { getClient } from './myfile';
getClient().then(client => { someOtherFunction(client); });
import
和export
是同步的,因此您无法将它们与异步函数混合使用。
第二个示例的问题是您设置了client = null
。稍后将其设置为对象时,您将该变量设置为对象,但在导出时导出client
的值