等待AsyncStorage.getItem()

时间:2016-05-09 15:58:36

标签: react-native asyncstorage

我在React Native应用程序中使用AsyncStorage来存储有关用户的信息。 getItem()函数是异步的,当我想从存储系统加载数据时,我需要实现回调。

AsyncStorage.getItem("phoneNumber").then((value) => {
    this.setState({"phoneNumber": value});
}).done();

因为从存储中检索值不需要很长时间,所以我想等到操作完成后再继续执行。

是否可以以非异步方式加载数据?如果没有,是否有一种简单的方法让我等到getItem()电话完成后才能继续执行?

3 个答案:

答案 0 :(得分:25)

您可以尝试在getItem之后添加一个。

AsyncStorage.getItem("phoneNumber").then((value) => {
    this.setState({"phoneNumber": value});
})
.then(res => {
    //do something else
});

或使用await等待async操作完成

var value = await AsyncStorage.getItem(STORAGE_KEY);
//use value to do something else.

答案 1 :(得分:5)

尝试此选项,您将无法获得

  

语法错误:Await是保留字

async getData() {
    return await AsyncStorage.getItem("@App:KEY");
}

答案 2 :(得分:0)

你可以试试这个:

async getPhoneNumber() {
  const phoneNumber = await AsyncStorage.getItem("phoneNumber")
  console.log(phoneNumber)
}