AsyncStorage 在 React Native 中不等待“then”

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

我在尝试从 React Native 中的 AsyncStorage 获取项目而不将其转换为异步函数并使用等待时遇到一些麻烦。

基于这个答案,我试图做这样的事情:

const getItem = (key) => {  
  AsyncStorage.getItem("access_token").then(value=>{
    console.log(value, " first")
    return value
  });
};

const test = () => {
  const teste = getItem()
  console.log(teste, " final"); 
}

最疯狂的部分是当调用测试函数时(例如,在 onPress 事件上),我会打印以下内容:

LOG  undefined  final
LOG  00b3ceb97ae8d9357abd1065f50be408a9389f23  first

最终的日志,应该显示在最后,首先打印,并且是未定义的。

我在这里遗漏了什么吗?是否可以使用“then”通过 AsyncStorage lib 获取数据而无需异步等待机制?

“react-native”:“0.73.6”和“@react-native-async-storage/async-storage”:“^1.23.1”,

react-native async-await asyncstorage
1个回答
0
投票

在你的情况下,我建议从

getItem
返回 Promise 并在之后使用
then

const getItem = (key) => {  
  return AsyncStorage.getItem("access_token").then(value => {
    console.log(value, " first");
    return value
  });
};

const test = () => {
  getItem().then((value) => console.log(value, " final"));
}
© www.soinside.com 2019 - 2024. All rights reserved.