从本机异步存储中获取数据

时间:2019-10-02 10:07:04

标签: javascript react-native asyncstorage

我想从 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;
} 

2 个答案:

答案 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;
}