await AsyncStorage return 一个 promise 而不是值

await AsyncStorage return a promise instead value

我有一个调用 AsyncStorage.getItem 但总是 returns 承诺的异步函数。

我尝试使用 .then 子句,但结果相似

我试图在函数外使用 AsyncStorage.getItem 但我收到错误 "await is a reserved word"

getDataStorage = async () => {
    console.log("getDataStorage");
    var data = '';
    try {
      data = await AsyncStorage.getItem('dataStorage');
      console.log("getting data " + data);
      return data;
    } catch (error) {
      console.log("----" + error.message);
    }
  };

componentDidMount(){
    console.log("componentDidMount");
    var data = this.getDataStorage();
    console.log(data);
}


结果首先显示承诺,然后打印我使用 getItem() 获得的值。

我想获取值,我想用 await 函数等待 getItem 的结果,是否正确?

是的,等待函数等待结果。但是,在您的情况下,它只是等待返回承诺,因此您必须将代码更改为:


    componentDidMount = async () => {
            console.log("componentDidMount");
            data = await this.getDataStorage();
            console.log(data);
        }