【问题标题】:await AsyncStorage return a promise instead valueawait AsyncStorage 返回一个承诺而不是值
【发布时间】:2019-12-02 23:01:46
【问题描述】:

我有一个异步函数,它调用 AsyncStorage.getItem 但总是返回一个承诺。

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

我尝试在函数之外使用 AsyncStorage.getItem 但我收到错误“等待是保留字”

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的结果,对吗?

【问题讨论】:

    标签: react-native async-await asyncstorage


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2017-01-11
      • 2018-04-14
      • 2021-04-11
      • 2021-11-27
      • 1970-01-01
      相关资源
      最近更新 更多