无法从AssyncStorage检索数据

时间:2020-06-15 18:56:55

标签: reactjs react-native asyncstorage

我正在使用@react-native-community/async-storage中的AssyncStorage软件包,并且在检索存储的数据时遇到了一个大问题。

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

一个有趣的事实是,如果我在if语句中console.log(value),它会显示正确的文本,但是会返回被告。

这是我的功能:

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,
}

1 个答案:

答案 0 :(得分: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是一个异步函数,它将返回promise,因此您要等到promise解决或拒绝promise。

因此您可以通过

let myFunction = async() => {

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

希望有帮助。毫无疑问