首页 > 解决方案 > React Native:等待 AsyncStorage.getItem 没有响应

问题描述

我有两个按钮,第一个是设置项目,AsyncStorage第二个是获取项目AsyncStorage

<Button title = 'click' onPress = {() => {
   let item = '1234'
   AsyncStorage.setItem('data', item )
   alert('saved')
   }
 }
/>
<Button title = 'click2' onPress = { async() => {
   let item = await AsyncStorage.getItem('data')
   alert(item)
   console.log(item)
  }
 }
/>

出于某种原因,在我单击第一个按钮保存数据后,我尝试单击第二个按钮,但alert功能和console.log不起作用。有人可以帮我解决吗?谢谢。

标签: react-nativeasynchronous

解决方案


setItem也是异步的,您不必等待它解决。您的数据可能没有及时保存(尽管如果您真的使用面向人的按钮似乎不太可能)。

也有可能一个或两个调用都失败了,但您没有处理它们的错误 - 两者都应该用 / 调用await并包裹在try/catch中,当然是在现实世界的应用程序中。同样,尽管我对此表示怀疑,因为在开发中您通常会看到未处理的承诺拒绝的警告。


推荐阅读