React Native AsyncStorage:从 Promise 对象访问值

Posted

技术标签:

【中文标题】React Native AsyncStorage:从 Promise 对象访问值【英文标题】:React Native AsyncStorage: Accessing Value from Promise Object 【发布时间】:2017-02-01 16:08:07 【问题描述】:

当我使用AsyncStorage.getItem() 检索指定键的值(电子邮件地址)时,它会返回文档中所示的 Promise 对象。该值出现在对象中,如下所示:


  _45: 0
  _54: null
  _65: "testuser@test.com"
  _81: 1

我可以通过调用obj._65 可靠地访问该值吗?或者有其他方法可以实现吗?

【问题讨论】:

【参考方案1】:

AsyncStorage 返回一个承诺。您可以使用 .then 获取价值

示例:

AsyncStorage.getItem('key').then((keyValue) => 
  console.log(keyValue) //Display key value
  , (error) => 
  console.log(error) //Display error
);

【讨论】:

console.log 值显示值但返回值显示承诺 当我退回它时,我也得到了承诺。你是怎么解决的?【参考方案2】:

查看at the docs,您应该能够可靠地执行此操作以从您的异步存储对象中检索数据。:

try 
  const value = await AsyncStorage.getItem('@MySuperStore:key');
  if (value !== null)
    // We have data!!
    console.log(value._65);
  
 catch (error) 
  // Error retrieving data

您必须在 async 的函数中使用它,否则您将获得运行时异常。

【讨论】:

以上是关于React Native AsyncStorage:从 Promise 对象访问值的主要内容,如果未能解决你的问题,请参考以下文章

对react native 的AsyncStorage 进行小型封装

使用 React native 不推荐使用 AsyncStorage

React Native AsyncStorage 存储字符串以外的值

React Native React Navigation 屏幕在使用 AsyncStorage 登录后不会重定向

React Native AsyncStorage ')' 以结束复合表达式

React Native 等待 AsyncStorage 获取值