如何从 Promise_ 对象获取数据?

How to get data from Promise_ object?

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

这是我在控制台中的 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 }

AsyncStorage getItem 函数是一个异步函数。这意味着如果你想获得那个 "get" 函数的 return 你将不得不等待响应。如果您正在使用 AsyncStorage.getItem() 函数,请在语句之前添加保留字 await,然后在您调用它的函数中将保留字 async 像这样放置:

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

您可以执行此操作以等待您的 AsyncStorage returns 项目。

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

然后尝试:

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

如果避免使用 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;
}