无法从AssyncStorage中获取数据。

问题描述 投票:2回答:1

我使用的是来自 @react-native-community/async-storage 并在检索存储数据时出现了很大的问题。

我不知道如何解析这些Promisse结果。

有趣的是,如果我 console.log(value) 内的if语句,它显示了正确的文本,但它返回的是Promisse。

这就是我的函数。

const getData = async (key: string) => {
    try {
      const value = await AsyncStorage.getItem(key)

      if(value !== null) {
        return value
      }
    } catch(e) {
      TriggerAlert(I18n.t('error.readError') + e)
    }
  }

我是这样调用函数的

console.log(getData('@key'))

这是我得到的输出。

Promise {
  "_40": 0,
  "_55": null,
  "_65": 0,
  "_72": null,
}
reactjs react-native asyncstorage
1个回答
1
投票

下面是正确的,你提取数据的方式。

const getData = async (key: string) => {
    try {
      const value = await AsyncStorage.getItem(key)

      if(value !== null) {
        return value
      }
    } catch(e) {
      TriggerAlert(I18n.t('error.readError') + e)
    }
  }

你唯一要改变的是函数调用的地方,因为...。getData 是一个异步函数,它将返回承诺,因此你要等到承诺解决或拒绝。

所以你可以通过,

let myFunction = async() => {

  console.log(await getData('@key'))
}

希望对大家有所帮助.如有疑问请随时咨询

© www.soinside.com 2019 - 2024. All rights reserved.