29

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

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

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

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

4

3 回答 3

37

您可以尝试在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.
于 2016-05-09T16:52:39.033 回答
6

试试这个选项,你不会得到

语法错误:Await 是保留字

async getData() {
    return await AsyncStorage.getItem("@App:KEY");
}
于 2017-10-11T23:06:24.603 回答
0

你可以试试这个:

async getPhoneNumber() {
  const phoneNumber = await AsyncStorage.getItem("phoneNumber")
  console.log(phoneNumber)
}
于 2021-05-21T10:51:56.003 回答