如何从 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;
}
我正在尝试从我的 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;
}