我想从 async 存储中获取数据并将其添加到数组中。我使用console.log()
函数检查数据,它可以正常工作,但是当我尝试将数据推入数组时,它不起作用,该函数返回了一个空数组。
getData(){
result = []
AsyncStorage.getAllKeys((err, keys) => {
AsyncStorage.multiGet(keys, (err, stores) => {
stores.map((object, key)=>(
console.log(object[1]),
result.push(object[1])
));
});
});
return result;
}
答案 0 :(得分:0)
您需要使用异步等待来实现此目标...
getData = async () => {
result = []
await AsyncStorage.getAllKeys((err, keys) => {
AsyncStorage.multiGet(keys, (err, stores) => {
stores.map((object, key)=>(
console.log(object[1]);
result.push(object[1]);
));
});
});
return result;
}
答案 1 :(得分:0)
您需要正确使用async / await,因为AsyncStorage严重依赖promise。
getData = async () => {
result = []
await AsyncStorage.getAllKeys(async (err, keys) => {
await AsyncStorage.multiGet(keys, (err, stores) => {
stores.map((object, key)=>(
console.log(object[1]);
result.push(object[1]);
));
});
});
return result;
}