簡體   English   中英

從異步函數導入數據

[英]Import data from async function

我正在處理一個使用 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
    }
});

問題是 async await 不會停止程序執行,所以我得到的 'configs' 未定義。 無論如何,我可以讓應用程序停止,直到 api 調用解決嗎? 謝謝。

如果你想使用 async/await,你必須將 index.js 包裹在一個異步函數中並添加

await getCognitoConfigs();

或者你可以像這樣使用承諾

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM