我正在尝试从我的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 }
你可以这样做,等到你的AsyncStorage返回该项目。
AsyncStorage.getItem('YOUR_KEY').then((response)=>{
const itemVal = response;
})
AsyncStorage
getItem
函数是一个异步函数。这意味着如果你想获得“get”函数的返回,你将不得不等待响应。如果你使用AsyncStorage.getItem()
函数在语句之前添加保留字await
,并在你调用它的函数中添加保留字async
,就像这样:
async myFunctionWhereImCallingTheGetter () {
var myData = await AsyncStorage.getItem('theitemIamSearching');
}
然后尝试:
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;
}