如何从Promise_对象获取数据?

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

我正在尝试从我的AsyncStorage中的React Native应用程序中的Promise_对象获取一些数据。

这是我在控制台中得到的Promise_对象:

Promise {_40: 0, _65: 0, _55: null, _72: null}
  _40: 0
  _55: {imageId: "1", imageName: "test.png"}
  _65: 1
  _72: null
__proto__: Object

所以我不知道如何简单地获取_55中的数据并在我的代码中显示它们,我只想取“1”和“test.png”。抱歉我的英语不好。谢谢 !

代码:

这是集合的代码:export const setBadgePicture = async (badgePictureId, badgePictureName) => await AsyncStorage.multiSet([['imageId', badgePictureId],['imageName', badgePictureName]])

并获得:export const getBadgePicture = async () => { await AsyncStorage.multiGet(['imageId', 'imageName']).then((response) => { tableResponse = { 'imageId' : response[0][1], 'imageName' : response[1][1], } }) return tableResponse }

react-native console local-storage asyncstorage
4个回答
1
投票

你可以这样做,等到你的AsyncStorage返回该项目。

 AsyncStorage.getItem('YOUR_KEY').then((response)=>{
      const itemVal = response;
})

0
投票

AsyncStorage getItem函数是一个异步函数。这意味着如果你想获得“get”函数的返回,你将不得不等待响应。如果你使用AsyncStorage.getItem()函数在语句之前添加保留字await,并在你调用它的函数中添加保留字async,就像这样:

async myFunctionWhereImCallingTheGetter () {
  var myData = await AsyncStorage.getItem('theitemIamSearching');
}

0
投票

然后尝试:

export const getBadgePicture = async () => {
  var response = await AsyncStorage.multiGet(['imageId', 'imageName']);
  var tableResponse = { 'imageId' : response[0][1], 'imageName' : response[1][1], } });
  return tableResponse;
}

0
投票

如果你避免使用multiGet怎么办?

export const getBadgePicture = async () => {
  var imageId = await AsyncStorage.getItem('imageId');
  var imageName = await AsyncStorage.getItem('imageName');
  var tableResponse = { 'imageId' : imageId, 'imageName' : imageName };
  return tableResponse;
}
© www.soinside.com 2019 - 2024. All rights reserved.