Javascript 如何从导入调用异步函数?

Javascript 如何从导入调用异步函数?,javascript,react-native,async-await,i18next,Javascript,React Native,Async Await,I18next,我使用这个异步代码函数从异步存储中获取lang var。我想在construct方法中的每个应用程序页面上调用这个函数。但是当我尝试调用它时,它看起来像是同步运行的代码,我的loadedLang是={{u45:0,{u81:0,{u65:null,{u54:null}。如何以正确的方式做这件事?谢谢 main.js languageLoad.js 异步函数需要使用await调用,并且只能从异步函数内部调用 JS构造函数不能是异步的。因此,您必须重新构造代码,使其以不同的方式工作。要么在构造函数外

我使用这个异步代码函数从异步存储中获取lang var。我想在construct方法中的每个应用程序页面上调用这个函数。但是当我尝试调用它时,它看起来像是同步运行的代码,我的loadedLang是={{u45:0,{u81:0,{u65:null,{u54:null}。如何以正确的方式做这件事?谢谢

main.js

languageLoad.js

异步函数需要使用await调用,并且只能从异步函数内部调用

JS构造函数不能是异步的。因此,您必须重新构造代码,使其以不同的方式工作。要么在构造函数外部加载数据,要么在构造函数中使用匿名自执行异步函数加载数据并存储数据。当然,类的其余部分将需要处理数据可能不存在的事实。

异步函数需要使用wait调用,并且只能从异步函数内部调用

JS构造函数不能是异步的。因此,您必须重新构造代码,使其以不同的方式工作。要么在构造函数外部加载数据,要么在构造函数中使用匿名自执行异步函数加载数据并存储数据。当然,本课程的其余部分将需要处理数据可能不存在的事实

import load from "./components/languageLoad"
               constructor(props) {
                    super(props);

                    let loadedLang = load();
                    console.log("LOADED", loadedLang);

                    this.state = {
                        settings: 1,
                        deviceLocale: "EMPTY"
                    };
                }
import React, { Component } from 'react';
import { AsyncStorage} from 'react-native';
import Lang from 'react-native-i18n'

export default load = async () => {
            try {
                const customLang = await AsyncStorage.getItem('customLang');
                if (customLang !== null && customLang !== undefined && customLang !== "") {
                    deviceLocale = customLang;
                }

            } catch (error) {
                deviceLocale = Lang.locale.split("-")[0] || "uk";
            }
            console.log("------------", deviceLocale, '-------------');
            console.log("------------", Lang.t('aboutAppText') , '-------------');
            Lang.locale = deviceLocale;
            return Lang;
        }