从异步功能导入数据

时间:2019-12-10 14:29:46

标签: javascript reactjs asynchronous import

我正在处理一个使用AWS Cognito的项目。需要通过API调用从服务器获取一些配置参数。我将API调用保存在config.js文件中,并使用async / await从这样的服务器获取响应

const getCognitoConfigs = async () => {
const res = await axios.get(`${apiurl.apiurl}/logininfo`);
console.log(res.data);
return res.data;
}; 

export default getCognitoConfigs;

然后在index.js(我在其中设置Cognito的位置)中,从config.js文件导入功能

import getCognitoConfigs from "./config";
const configs = getCognitoConfigs();

Amplify.configure({
    Auth: {
        mandatorySignIn: true,
        region: configs.cognito.region,
        userPoolId: configs.cognito.user_pool,
        userPoolWebClientId: configs.cognito.app_client_id
    }
});

问题是异步等待不会停止程序执行,因此我正在获取未定义的“配置”。无论如何,在api调用解决之前,我可以使应用程序停止吗?谢谢。

1 个答案:

答案 0 :(得分:0)

如果要使用异步/等待,则必须将index.js包装在异步函数中并添加

await getCognitoConfigs();

或者您可以使用诸如

的promise
getCognitoConfigs().then(res => Amplify.configure({...}))